<分区>
我正在为 go 的接收器和指针而苦苦挣扎。 我发现第 4 种模式会导致错误。 为什么这种模式会导致错误,有什么区别? 提前致谢。
type MyError struct{}
// OK pattern
func (e MyError) Error() string {
return "something bad happened"
}
func run() error {
return MyError{}
}
// OK pattern
func (e MyError) Error() string {
return "something bad happened"
}
func run() error {
return &MyError{}
}
// OK pattern
func (e *MyError) Error() string {
return "something bad happened"
}
func run() error {
return &MyError{}
}
// BAD pattern
func (e *MyError) Error() string {
return "something bad happened"
}
func run() error {
return MyError{}
}