我在从 Python 过渡到 Go 时遇到了一些困难,而且我历来依赖内置实用程序函数,例如 Python 的 dir 来列出底层方法和属性。
go中有等价的吗?
我相信
reflect.TypeOf()
可以在某种程度上复制 dir()
功能,但问题是当两种语言有不同的哲学时为什么还要去那里。
在Python中,
dir()
是动态的,可以作用于任何对象,而在Go中你需要显式地使用reflect.TypeOf()
和相关方法。
Go 强调简单性和静态类型。内省是可能的,但在日常开发中并不常用。相反,您依靠使用 gopls 或带有 IntelliSense 的编辑器等工具来探索方法和字段。除此之外,go doc 命令和 Go 优秀的文档文化。
过渡到 Go 将涉及适应 Go 的显式和可预测代码哲学,并谨慎使用反射。