有志者,事竟成!如果你在学习Golang,那么本文《为什么我的自定义错误类型会导致特定模式的错误?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容我正在努力处理 go 的接收器和指针。 我发现第四种模式会导致错误。 为什么这种模式会导致错误,有什么区别? 提前致谢。
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{}
}
解决方案
Go 会自动为您取消引用指针(模式 2),但它不会自动为您引用指针。请参阅 https://golang.org/ref/spec#Method_values 了解更多信息。
好了,本文到此结束,带大家了解了《为什么我的自定义错误类型会导致特定模式的错误?》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!