Что возвращается вторым параметром при возврате Zero Value

«Что возвращается вторым параметром при возврате Zero Value» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При возврате Zero Value вторым параметром обычно возвращается false (для проверки существования значения) или nil (если это ошибка).

Пример с map:

m := map[string]int{"foo": 1}
val, ok := m["bar"] // val = 0 (Zero Value), ok = false (ключа нет)

Пример с type assertion:

var i interface{} = 42
num, ok := i.(float64) // num = 0.0 (Zero Value), ok = false (не float64)

Для ошибок (например, в sync.Map):

var m sync.Map
val, ok := m.Load("missing") // val = nil, ok = false