我正在创建一个自定义错误并将其用作函数返回:
type MyError struct {
Name string
}
func (me *MyError) Error() string {
return me.Name + " is my error"
}
返回自定义错误的函数:
func (anyStruct *AnyStruct) Validate() error {
// if Any verification {
return &MyError{Name: "MyError"}
//}
}
为什么我不能作为值而不是引用返回?如果我尝试作为值返回:
return MyError{Name: "MyError"}
编辑器的 linter 抱怨一个错误:
不能使用(MyError 文字)(MyError 类型的值)作为返回语句中的错误值:缺少方法错误
此外,我对返回引用但函数签名没有通知将返回指针这一事实感到困惑:
func (anyStruct *AnyStruct) Validate() error {代替func (anyStruct *AnyStruct) Validate() *error {
尚方宝剑之说
相关分类