go语言method 求解

layli · · 892 次点击
**指针类型的receiver 方法实现接口时,只有指针类型的对象实现了该接口** 因为实现`Error()`方法是argError指针类型实现的, 所以必须加&. 如果不加&如下代码: ``` package main import ( "fmt" ) type argError struct { arg int prob string } func (e argError) Error() string { return fmt.Sprintf("%d --- %s", e.arg, e.prob) } func f2(arg int) (int, error) { if arg == 42 { return -1, argError{arg, "can't work with it"} } return arg + 3, nil } func main() { _, err := f2(42) if err != nil { fmt.Print(err) } } ```
#5
更多评论
实现了 error 接口
#1
``` type error interface { Error() string } ```
#2