Все вопросы

08 Типы и значения

Что такое нулевое значение?

У var без начального значения уже есть предсказуемое содержимое. Числа — 0, bool — false, строка — "". Указатели, срезы, карты, каналы, функции и интерфейсы — nil.

На нулевое значение можно опираться. Пустая строка и nil-срез ведут себя спокойно в len и range. Запись в nil-карту и вызов метода по nil-указателю — уже паника, если метод сам разыменовывает получателя.

Пример

Go

var без инициализации

package main

import "fmt"

func main() {
    var (
        n  int
        ok bool
        s  string
        p  *int
        sl []int
        m  map[string]int
    )
    fmt.Printf("%#v %#v %q %#v %#v %#v\n", n, ok, s, p, sl, m)
}