草庐IT

argError

全部标签

go - 为什么我们在这个例子中返回一个指针而不是一个值?

packagemainimport"fmt"typeargErrorstruct{argintprobstring}func(e*argError)Error()string{returnfmt.Sprintf("%d-%s",e.arg,e.prob)}funcf2(argint)(int,error){return-1,&argError{arg,"can'tworkwithit"}}funcmain(){_,e:=f2(42)ifae,ok:=e.(*argError);ok{fmt.Println(ae.arg)fmt.Println(ae.prob)}}在f2中我们有指针&a

go - 为什么我们在这个例子中返回一个指针而不是一个值?

packagemainimport"fmt"typeargErrorstruct{argintprobstring}func(e*argError)Error()string{returnfmt.Sprintf("%d-%s",e.arg,e.prob)}funcf2(argint)(int,error){return-1,&argError{arg,"can'tworkwithit"}}funcmain(){_,e:=f2(42)ifae,ok:=e.(*argError);ok{fmt.Println(ae.arg)fmt.Println(ae.prob)}}在f2中我们有指针&a