One minute
Встроенные типы в Go
Базовые типы
В го есть стандартные типы: bool, int (uint / 8-64), float, [[Как устроены строки в Golang|string]].
Есть отдельные типы byte (uint8) - для байтов, и rune (int32) - для unicode символов ([[Как устроены строки в Golang]])
Есть отдельный тип для комплексных чисел complex64 и complex128.
Размер int
, uint
, и uintptr
зависит от разрядности ОС: 32-bit и 64-bit соответственно.
Составные типы
[[Массивы]], [[Как устроены array и slice в Golang|слайсы]], [[Как устроены map в Golang|мапы]], [[каналы]]
Указатели
На все базовые и составные типы можно сделать указатель.
Другие типы
на которые нельзя сделать указатель
- Функции. Это first-class citizens. Можно сделать свой тип для сигнатуры функции (
type handler func(io.Reader, io.Writer) error
). Можно передавать как параметры других функций или возвращать. - [[Интерфейсы]]
Zero value
Variables declared without an explicit initial value are given their zero value.
0
для numeric types,false
для bool""
(пустая строка) для строк.nil
для указателей и функций- все поля структур заполняются zero value
- массив заполняется zero value
- пустой unsafe.Pointer и len=0, cap=0 для слайса [[Как устроены array и slice в Golang]]
- nil бакеты для map. При записи будет паника, нужно обязательно инициализировать через
make
[[Как устроены map в Golang]]