![QQ图片20190519112005.png](https://static.studygolang.com/190519/0f86c36e408b8497d35ab68fc56646b0.png)
自定义的代码和errors包中的代码一模一样,为啥errors.New 返回的值是string 而New2返回的值是&{} 。。。
这里的关键是 fmt.Print 系列方法,对 error 接口做了特殊处理。也就是说,如果实现了 error 接口,会调用它的 Error 方法,自然就能打印字符串了,而你这里是自定义接口,当然不会打印字符串。
具体可以看:http://docs.studygolang.com/src/fmt/print.go?s=308:308#L601
#2