http://play.golang.org/p/xjs-jwMsr7
私はこの機能を持っています
func (e *MyError) Error() string {
return fmt.Sprintf("AT %v, %s", e.When, e.What)
}
しかし
以下に示すように、私はそれを呼び出したことはありませんが、最終出力で呼び出されるのはなぜですか?
type MyError struct {
When time.Time
What string
}
func (e *MyError) Error() string {
return fmt.Sprintf("AT %v, %s", e.When, e.What)
}
func run() error {
return &MyError{
time.Now(), "it didn't work",
}
}
func main() {
if err := run(); err != nil {
fmt.Println(err)
}
}