Типы данных Go
Ниже приведены все встроенные типы в языке Go для справки, более подробная информация доступна в Справочном руководстве - Типы.
Логический тип
Логический тип имеет только истинное и ложное значения.
| Тип | Описание |
|---|---|
bool | true — истина, false — ложь |
TIP
В Go целое число 0 не представляет ложь, а ненулевое целое число не представляет истину, то есть числа не могут заменять логические значения в логических суждениях — это два совершенно разных типа.
Целочисленные типы
В Go для целых чисел разной разрядности определены разные типы, в основном разделённые на беззнаковые и знаковые целые типы.
| № | Тип и описание |
|---|---|
uint8 | Беззнаковый 8-битный целый тип |
uint16 | Беззнаковый 16-битный целый тип |
uint32 | Беззнаковый 32-битный целый тип |
uint64 | Беззнаковый 64-битный целый тип |
int8 | Знаковый 8-битный целый тип |
int16 | Знаковый 16-битный целый тип |
int32 | Знаковый 32-битный целый тип |
int64 | Знаковый 64-битный целый тип |
uint | Беззнаковый целый тип, минимум 32 бита |
int | Целый тип, минимум 32 бита |
uintptr | Эквивалентен беззнаковому 64-битному целому типу, но предназначен для хранения адресов указателей и арифметики указателей. |
Типы с плавающей точкой
Числа с плавающей точкой IEEE-754, в основном разделённые на числа одинарной и двойной точности.
| Тип | Описание |
|---|---|
float32 | 32-битное число с плавающей точкой IEEE-754 |
float64 | 64-битное число с плавающей точкой IEEE-754 |
Комплексные типы
| Тип | Описание |
|---|---|
complex128 | 64-битные вещественная и мнимая части |
complex64 | 32-битные вещественная и мнимая части |
Символьные типы
Строки в Go полностью совместимы с UTF-8.
| Тип | Описание |
|---|---|
byte | Эквивалентен uint8, может представлять символы ASCII |
rune | Эквивалентен int32, может представлять символы Unicode |
string | Строка — это последовательность байтов, может быть преобразована в тип []byte (срез байтов) |
Производные типы
| Тип | Пример |
|---|---|
| Массив | [5]int — массив из 5 целых чисел |
| Срез | []float64 — срез 64-битных чисел с плавающей точкой |
| Отображение | map[string]int — отображение с ключами типа string и значениями типа int |
| Структура | type Gopher struct{} — структура Gopher |
| Указатель | *int — указатель на целое число |
| Функция | type f func() — тип функции без параметров и возвращаемого значения |
| Интерфейс | type Gopher interface{} — интерфейс Gopher |
| Канал | chan int — канал целых чисел |
Нулевое значение
В официальной документации нулевое значение называется zero value. Нулевое значение — это не просто число ноль в буквальном смысле, а скорее пустое значение или значение по умолчанию для типа.
| Тип | Нулевое значение |
|---|---|
| Числовые типы | 0 |
| Логический тип | false |
| Строковый тип | "" |
| Массив | Набор нулевых значений соответствующего типа фиксированной длины |
| Структура | Структура, все поля которой имеют нулевые значения |
| Срез, отображение, функция, интерфейс, канал, указатель | nil |
nil
nil похож на none или null в других языках, но не идентичен им. nil — это просто нулевое значение некоторых ссылочных типов, и он не принадлежит ни к какому типу. Из исходного кода видно, что nil — это просто переменная.
var nil TypeИ выражение nil == nil не скомпилируется.
