Почему я получаю ошибку нулевого указателя при попытке напечатать указатель с неинициализированной встроенной ошибкой:
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)
}
приводит к
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
Сегодня об этом говорится в интервью, и ни интервьюер, ни интервьюируемый не могли этого понять.