Go 中的字符串操作:为什么方法被单独打包
在编程语言 Go 中,字符串操作函数驻留在“strings”包中而不是直接在“字符串”类型上定义。这种设计决策激发了人们的好奇心,引发了这样一个问题:为什么 Go 的方法与其他允许基本类型方法的语言不同。
一种理论表明,这种分离可以防止在实现字符串操作函数的自定义版本时发生冲突。然而,这个理论缺乏基础支持。
Go 的设计哲学
这种设计选择的根本原因在于 Go 的指导原则。正如 Go 的创建者之一 Rob Pike 所说,为了保持语言的简单性,故意省略了基本类型的方法。
方法定义的含义
在 Go 中,方法可以只能在属于同一包的类型上定义。由于“字符串”是语言本身实现的内置类型,因此在不引入复杂性的情况下向其添加方法将具有挑战性。
打包方法的优点
通过单独封装字符串操作函数,Go 实现了以下几个优点:
其他观点
Pike 进一步强调,反对基本类型方法的决定是谨慎做出的,并且植根于愿望以简化语言。他还指出,“strings”包提供了一套全面的字符串操作功能,如果集成到基本的“string”类型中,这些功能可能会变得笨拙。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3