Встроенные типы Go
int, float64, string, bool и их нулевые значения
«Встроенные типы Go» — бесплатный урок Go Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.
Обзор системы типов Go
В Go есть богатый набор встроенных типов, организованных по категориям:
- Логический:
bool - Целочисленные:
int,int8,int16,int32,int64и варианты без знака - С плавающей точкой:
float32,float64 - Строковый:
string - Комплексный:
complex64,complex128
Целочисленные типы
Go предоставляет целочисленные типы, зависящие от платформы, и типы фиксированного размера:
int/uint— размер зависит от платформы (32 или 64 разряда)int8…int64— фиксированная разрядностьbyte— псевдоним дляuint8rune— псевдоним дляint32, представляет кодовую точку Unicode
Используйте int для целых чисел общего назначения, если Вам не нужна определённая разрядность.
float64 и float32
Типы с плавающей точкой соответствуют стандарту IEEE 754:
package main
func main() {
var f32 float32 = 3.14
var f64 float64 = 3.141592653589793
ratio := f64 / 2.0 // float64 inferred
_ = f32
_ = ratio
}Тип string
Строки в Go — это неизменяемые последовательности байтов, закодированные в UTF-8:
- В двойных кавычках:
"Hello"— поддерживают управляющие последовательности - В обратных кавычках:
`raw string`— управляющие последовательности не обрабатываются, строка может занимать несколько строк len(s)возвращает количество байтов, а не символов- Перебирайте символы с помощью
range, чтобы получать значения типа rune
Тип bool
Тип bool имеет два значения: true и false.
- Нулевое значение —
false - Логические операторы:
&&,||,! - Операторы сравнения возвращают значение типа bool:
==,!=,<,> - Go не выполняет неявное преобразование целых чисел в bool, в отличие от C
Итоги о нулевых значениях
У каждого типа есть однозначно определённое нулевое значение:
int, все числовые типы →0float64→0.0string→""bool→false*T, срез, отображение, канал и функция →nil
Нулевые значения делают код Go безопасным — Вы никогда не прочитаете мусор из памяти.
Числовые литералы
Go поддерживает несколько форматов числовых литералов:
package main
func main() {
dec := 1_000_000 // digit separators
hex := 0xFF
oct := 0o777
bin := 0b1010
sci := 1.5e3 // 1500.0
_ = dec; _ = hex; _ = oct; _ = bin; _ = sci
}Размеры и диапазоны типов
Знание размеров типов помогает предотвращать ошибки переполнения:
int8: от -128 до 127uint8: от 0 до 255int16: от -32768 до 32767int32: примерно ±2,1 миллиардаint64: примерно ±9,2 квинтиллиона
Используйте math.MaxInt64 и похожие константы из пакета math, чтобы получить точные границы.
rune и byte
rune и byte — это псевдонимы типов с определённым смыслом:
byte=uint8— используется для необработанных двоичных данных и данных ASCIIrune=int32— используется для кодовых точек Unicode
При переборе строки с помощью range Go передаёт Вам значения rune — это удобно для работы с многобайтовыми символами UTF-8, например с эмодзи.
Выбор подходящего типа
Рекомендации по выбору числовых типов:
- По умолчанию используйте
intдля счётчиков и индексов - Используйте
float64для обычных вычислений с плавающей точкой - Используйте
int64/uint64для идентификаторов, временных меток и больших количеств - Используйте
int32только при взаимодействии с API, которые требуют этот тип - Избегайте
float32, если только Вы не работаете с графикой или данными, для которых важно экономить пространство
Быстрая проверка
Каково нулевое значение переменной типа string в Go?
Повторение: встроенные типы
Встроенные типы Go дают Вам прочную основу:
- Целочисленное семейство:
int,int64,byte,rune - Типы с плавающей точкой: отдавайте предпочтение
float64 string— это неизменяемые байты UTF-8boolсо значениямиtrue/false- У каждого типа есть нулевое значение — неожиданностей не будет
Далее: константы и мощный перечислитель iota.
Задание для практики
Поэкспериментируйте: объявите переменную типа rune, содержащую букву 'A', и переменную типа byte, содержащую значение 65. Выведите обе переменные — они должны дать одинаковое числовое значение. Затем попробуйте перебрать короткую строку с эмодзи, чтобы увидеть значения rune в действии.
Часто задаваемые вопросы
Урок «Встроенные типы Go» бесплатный?
Да — полный текст урока «Встроенные типы Go» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.
Чему я научусь в уроке «Встроенные типы Go»?
int, float64, string, bool и их нулевые значения Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Go Academy?
Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Встроенные типы Go»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Go Academy?
Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объявление переменных в Go
- Встроенные типы Go
- Константы и iota
- Преобразование типов в Go