0Pricing
Go Academy · Урок

Встроенные типы 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 — псевдоним для uint8
  • rune — псевдоним для 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, все числовые типы → 0
  • float64 → 0.0
  • string → ""
  • 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 до 127
  • uint8: от 0 до 255
  • int16: от -32768 до 32767
  • int32: примерно ±2,1 миллиарда
  • int64: примерно ±9,2 квинтиллиона

Используйте math.MaxInt64 и похожие константы из пакета math, чтобы получить точные границы.

rune и byte

rune и byte — это псевдонимы типов с определённым смыслом:

  • byte = uint8 — используется для необработанных двоичных данных и данных ASCII
  • rune = int32 — используется для кодовых точек Unicode

При переборе строки с помощью range Go передаёт Вам значения rune — это удобно для работы с многобайтовыми символами UTF-8, например с эмодзи.

Выбор подходящего типа

Рекомендации по выбору числовых типов:

  • По умолчанию используйте int для счётчиков и индексов
  • Используйте float64 для обычных вычислений с плавающей точкой
  • Используйте int64 / uint64 для идентификаторов, временных меток и больших количеств
  • Используйте int32 только при взаимодействии с API, которые требуют этот тип
  • Избегайте float32, если только Вы не работаете с графикой или данными, для которых важно экономить пространство

Быстрая проверка

Каково нулевое значение переменной типа string в Go?

Повторение: встроенные типы

Встроенные типы Go дают Вам прочную основу:

  • Целочисленное семейство: int, int64, byte, rune
  • Типы с плавающей точкой: отдавайте предпочтение float64
  • string — это неизменяемые байты UTF-8
  • bool со значениями 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 — локальная установка не требуется.

Все уроки этого курса

  1. Объявление переменных в Go
  2. Встроенные типы Go
  3. Константы и iota
  4. Преобразование типов в Go
← Назад к Go Academy