Junior — Middle
When can a situation arise where the interface of an object is equal to null?
sobes.tech AI
Answer from AI
In Go, an interface can be nil in two cases:
- When a variable of interface type does not contain any value (i.e., it does not point to any object).
- When the interface contains a pointer to a struct, which itself is
nil.
It is important to understand that an interface consists of two parts: the type and the value. An interface is nil only if both — the type and the value — are nil. If the type is set, but the value is nil, the interface is not nil.
Example:
var i interface{} // i == nil
var p *int = nil
var i2 interface{} = p // i2 != nil, although p == nil
fmt.Println(i == nil) // true
fmt.Println(i2 == nil) // false
Such situations often occur when working with interfaces and pointers, and it is important to consider this when checking for nil.