Bool, nil и нулевые значения
Булев тип
var active bool = true
done := false
bool принимает ровно два значения: true и false. В Go нет «truthy/falsy» — целое число не конвертируется в bool неявно.
nil
nil — нулевое значение для ссылочных типов: указателей, срезов, карт, каналов, функций, интерфейсов.
var p *int // p == nil
var s []int // s == nil, len(s) == 0
nil — это не 0 и не пустая строка. Это отдельное значение для типов, которые «могут отсутствовать».
Нулевые значения
Каждый тип в Go имеет нулевое значение — гарантированное начальное состояние при объявлении без инициализации:
| Тип | Нулевое значение |
|---|---|
int, int8 … uint64 | 0 |
float32, float64 | 0.0 |
complex64, complex128 | 0+0i |
bool | false |
string | "" |
| указатели, срезы, карты, каналы | nil |
var n int // 0
var s string // ""
var b bool // false
В Go нет понятия «неинициализированная переменная» — нулевые значения гарантированы компилятором.
Упражнения
| № | Задание | Сложность |
|---|---|---|
| 1 | Упражнение 1 | easy |
| 2 | Упражнение 2 | easy |
| 3 | Упражнение 3 | medium |