登录
首页 >  Golang >  Go问答

为什么我的自定义错误类型会导致特定模式的错误?

来源:stackoverflow

时间:2024-04-04 23:54:21 311浏览 收藏

有志者,事竟成!如果你在学习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学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>