Bool, nil и нулевые значения

var active bool = true
done := false

bool принимает ровно два значения: true и false. В Go нет «truthy/falsy» — целое число не конвертируется в bool неявно.

nil — нулевое значение для ссылочных типов: указателей, срезов, карт, каналов, функций, интерфейсов.

var p *int    // p == nil
var s []int   // s == nil, len(s) == 0

nil — это не 0 и не пустая строка. Это отдельное значение для типов, которые «могут отсутствовать».

Каждый тип в Go имеет нулевое значение — гарантированное начальное состояние при объявлении без инициализации:

ТипНулевое значение
int, int8uint640
float32, float640.0
complex64, complex1280+0i
boolfalse
string""
указатели, срезы, карты, каналыnil
var n int    // 0
var s string // ""
var b bool   // false

В Go нет понятия «неинициализированная переменная» — нулевые значения гарантированы компилятором.


ЗаданиеСложность
1Упражнение 1easy
2Упражнение 2easy
3Упражнение 3medium