Все типы данных в одном примере
Краткое описание
Практический урок с демонстрацией всех базовых типов данных Go в одной программе. Разбираем знаковые и беззнаковые целые числа, float, комплексные числа, bool, string и специальные типы-альясы byte и rune.
Основные концепции
Универсальность синтаксиса
Все типы данных объявляются одинаково через var:
var intVar int = 100
var floatVar float32 = 3.14
var boolVar bool = true
var stringVar string = "Hello"
Меняется только тип и диапазон значений — синтаксис остаётся единым.
Альясы типов
byte и rune — это альясы существующих типов:
var byteVar byte = 255 // на самом деле uint8
var runeVar rune = 'Я' // на самом деле int32
fmt.Printf("%T\n", byteVar) // выведет: uint8
fmt.Printf("%T\n", runeVar) // выведет: int32
Шаблон %T показывает базовый тип, а не альяс.
Комплексные числа
Go поддерживает complex64 и complex128 “из коробки”:
var c complex64 = 1 + 2i
fmt.Printf("%v\n", c) // (1+2i)
Важно: за 12+ лет backend-разработки на C# они не понадобились ни разу. В типичных задачах (REST API, JSON, базы данных) не используются.
Практический пример
Программа демонстрирует все типы с выводом значений и типов:
// Знаковые целые
var int8Var int8 = 127
fmt.Printf("int8: %d (тип: %T)\n", int8Var, int8Var)
// Беззнаковые целые
var uint8Var uint8 = 255
fmt.Printf("uint8: %d (тип: %T)\n", uint8Var, uint8Var)
// Float
var float32Var float32 = 3.14159
fmt.Printf("float32: %.5f (тип: %T)\n", float32Var, float32Var)
// Альясы
var byteVar byte = 255 // альяс uint8
var runeVar rune = 'Я' // альяс int32
fmt.Printf("byte: %d (тип: %T)\n", byteVar, byteVar)
// Вывод: byte: 255 (тип: uint8)
Что запомнить
- Синтаксис объявления одинаков для всех типов:
var имя тип = значение - Комплексные числа существуют, но в backend почти не нужны
byte— этоuint8(для работы с байтами)rune— этоint32(для Unicode символов)%Tпоказывает базовый тип альяса- Все типы работают аналогично — привыкайте к синтаксису Go
- Для практики достаточно знать
int,float64,bool,string