How to check pointer or interface is nil?


Example

package main
 
import (
    "fmt"
)
 
type Temp struct {
}
 
func main() {
    var pnt *Temp       // pointer
    var inf interface{} // interface declaration
    inf = pnt           // inf is a non-nil interface holding a nil pointer (pnt)
 
    fmt.Printf("pnt is a nil pointer: %v\n", pnt == nil)
    fmt.Printf("inf is a nil interface: %v\n", inf == nil)
    fmt.Printf("inf is a interface holding a nil pointer: %v\n", inf == (*Temp)(nil))
}

Output

pnt is a nil pointer: true
inf is a nil interface: false
inf is a interface holding a nil pointer: true
Most Helpful This Week