Go 关于类型定义的问题

2021-11-15 10:30:04 +08:00
 51m
type Error byte

func (err Error) Error() string {
return "SOCKS error: " + strconv.Itoa(int(err))
}

func main() {
fmt.Println(Error(1))
}
=========
当我执行上述程序时,返回的结果是:
SOCKS error: 1
我认为应该返回的结果是:1
请各位大佬指点一下
1174 次点击
所在节点    Go 编程语言
4 条回复
Mitt
2021-11-15 10:46:21 +08:00
func Error() string 实现了 error 接口,所以自动调用了 Error 函数作为字符串,就类似 Stringer
CEBBCAT
2021-11-15 11:07:39 +08:00
给 Error 打个断点看一下调用栈,或者在那里把 runtime.Stack()打印一下
oe3675
2021-11-15 12:30:52 +08:00
zjj19950716
2021-11-15 17:47:57 +08:00
用 println, fmt.Println 会做其他事情

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/815431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX