Back to questions
Junior — Middle
89
Что такое нулевое значение у интерфейса в языке программирования?
Companies where asked
Эрливидео
Самокат Тех
Answer from AI
sobes.tech AI
В Go нулевое значение (zero value) для интерфейса — это nil. Интерфейс в Go — это тип, который содержит два поля: указатель на тип конкретного значения и указатель на само значение.
Если интерфейс не инициализирован, то оба поля равны nil, и такой интерфейс считается нулевым.
Пример:
var i interface{}
fmt.Println(i == nil) // true
Важно понимать, что интерфейс равен nil только если и тип, и значение внутри интерфейса равны nil. Если внутри интерфейса хранится указатель на nil, сам интерфейс не равен nil.
Например:
type MyType struct{}
var p *MyType = nil
var i interface{} = p
fmt.Println(i == nil) // false
Здесь i не nil, потому что внутри интерфейса хранится тип *MyType, хоть и значение nil.
Таким образом, нулевое значение интерфейса — это отсутствие типа и значения, то есть nil.