===== error interface ===== ==== What is it? ==== `error` is a built-in interface type in Go: type error interface { Error() string } Any type that implements `Error() string` can be used as an error. ==== What is it used for? ==== * Standardize how functions return failure information. * Allow custom error types while still matching `error`. ==== Example ==== type MyError struct{ Msg string } func (e MyError) Error() string { return e.Msg } func f() error { return MyError{Msg: "something went wrong"} } ==== Notes ==== * `nil` error means success. * Be careful: an interface can be non-nil even if it holds a typed nil (advanced pitfall). ==== Hard words (English) ==== * **interface** /ˈɪntərfeɪs/: giao diện * **implement** /ˈɪmplɪment/: triển khai * **pitfall** /ˈpɪtfɔːl/: bẫy thường gặp