自定义的代码和errors包中的代码一模一样,为啥errors.New 返回的值是string 而New2返回的值是&{} 。。。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
问题太菜鸡了吗?
这里的关键是 fmt.Print 系列方法,对 error 接口做了特殊处理。也就是说,如果实现了 error 接口,会调用它的 Error 方法,自然就能打印字符串了,而你这里是自定义接口,当然不会打印字符串。
具体可以看:http://docs.studygolang.com/src/fmt/print.go?s=308:308#L601
这里的关键是 fmt.Print 系列方法,对 error 接口做了特殊处理。也就是说,如果实现了 error 接口,会调用它的 Error 方法,自然就能打印字符串了,而你这里是自定义接口,当然不会打印字符串。 具体可以看:http://docs.studygolang.com/src/fmt/print.go?s=308:308#L601
牛逼大哥,一语解醒惑中人。
實現 error 接口即可
type error interface { Error() string }
`单行代码`
问题太菜鸡了吗?
这里的关键是 fmt.Print 系列方法,对 error 接口做了特殊处理。也就是说,如果实现了 error 接口,会调用它的 Error 方法,自然就能打印字符串了,而你这里是自定义接口,当然不会打印字符串。
具体可以看:http://docs.studygolang.com/src/fmt/print.go?s=308:308#L601
牛逼大哥,一语解醒惑中人。
實現 error 接口即可
type error interface { Error() string }