Sobes.tech
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.