Why do I get a nil pointer error when I try to print a pointer with an uninitialized embedded error:
package main
import (
"log"
"errors"
)
type Danger struct {
error
}
func main() {
// the nil pointer issue has to do with struct embedding an error value that is nil
d := &Danger{}
log.Println(d)
d = &Danger{errors.New("foobar")}
log.Println(d)
}
results in
2009/11/10 23:00:00 %!v(PANIC=runtime error: invalid memory address or nil pointer dereference)
2009/11/10 23:00:00 foobar
https://play.golang.org/p/fBuN0XonX9v
This came up in an interview today and neither interviewer nor interviewee could figure it out.