Модульні уроки (1/5)
Змінні та типи
У Go кожна змінна має статичний тип, відомий компілятору: один раз оголошена змінна не може змінити тип. Ця жорсткість — дуже різна з JavaScript або Python — це ціна, яку ви платите, щоб отримати час компіляції помилки замість помилок під час виконання, маленькі двійкові файли та передбачувані продуктивність.
Дві форми декларації
var з явним типом
var name string = "Ada"
var age int = 36
var active boolЯкщо ви пропускаєте значення (як у var active bool), змінна отримує
нульове значення свого типу — ми повернемося до цього в наступному уроці.
Коротка декларація :=
Усередині функції ви можете використовувати :=, який виводить тип із
вираз праворуч. Це ідіоматична форма, яку ви використовуватимете
90% часу:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolОсновні типи, які ви зустрінете відразу
| Тип | Приклад | Примітки |
|---|---|---|
int | 42 | розмір залежить від ЦП (32 або 64 біт) |
float64 | 3.14 | за замовчуванням для десяткових літералів |
string | "Ada" | UTF-8, незмінний |
bool | true, false | жодного "правдивого", лише чистий bool |
rune | 'A' | псевдонім int32, представляє кодову точку Unicode |
byte | 0x7F | псевдонім uint8 |
Є також int8/16/32/64, uint8/16/32/64, float32 та complex64/128
коли вам потрібні точні розміри (двійковий аналіз, взаємодія тощо).
Кілька декларацій
Ви можете оголосити кілька змінних за допомогою блоку var або множини :=:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemЗмінні оголошено, але не використовуються
Go суворий: змінна, оголошена і ніколи не використовується, є компіляцією
помилка, а не попередження. Те саме стосується невикористаних imports.
func main() {
x := 42
// error: x declared and not used
}Щоб тимчасово вимкнути правило, використовуйте _ (порожній ідентифікатор):
_ = xВаша черга
Використовуйте var, щоб оголосити назву змінної типу string зі значенням "Ada" та надрукувати її.
Показати підказку
Довга форма: var <name> <type> = <value>`.
Рішення доступне після 3 спроб
В одному рядку використовуйте :=, щоб призначити 36 для віку та «Рома» для міста, а потім виведіть обидва.
Показати підказку
Ви можете призначити кілька змінних одночасно: `a, b := 1, "настав"`.
Рішення доступне після 3 спроб
Яке з цих оголошень створює помилку компіляції, якщо розмістити ПОЗА функцією?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Підведення підсумків
- Статичний тип, автоматично визначений
:=або оголошений за допомогоюvar. :=тільки всередині функцій; лише на рівні пакетуvar/const.- Невикористані змінні та імпорт = помилка компіляції: використовуйте
_, щоб вимкнути їх. int/float64/string/boolохоплює 90% щоденних випадків.