gpt4 book ai didi

pointers - 为什么返回类型实际上是error 还需要返回一个指针?

转载 作者:IT王子 更新时间:2023-10-29 01:51:35 26 4
gpt4 key购买 nike

我正在阅读文章 Error handling and Go , 并且不太明白为什么当返回类型实际上是 error 时必须返回一个指针 (&errorString{text})?

我的理解是error是一个接口(interface),而errorString实现了这个接口(interface),所以return errorString也是可以的(但不是案)。

// New returns an error that formats as the given text.
func New(text string) error {
return &errorString{text}
}

错误字符串实现

// errorString is a trivial implementation of error.
type errorString struct {
s string
}

func (e *errorString) Error() string {
return e.s
}

最佳答案

因为 errorStringerror 接口(interface)是为指针 (func (e *errorString) Error()) 实现的,如果它被实现如下所示,您将直接返回值:

func (e errorString) Error() string {
return e.s
}

关于pointers - 为什么返回类型实际上是error 还需要返回一个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com