泛型是 golang 最大的痛点(没有之一)。
golang 其他为人诟病的地方(比如错误处理,比如黑魔法太少),大约可归类为习惯问题,if err != nil 只是写法不一样,习惯之后,也足够用了,何况 goland 对于未处理的错误会标黄提示。
但是没有泛型这个实在不能忍,不仅代码丑陋,而且缺少类型提示与编译期错误检查(如果使用 interface{}、反射来曲线救国),运行时性能损失倒无所谓,绝大多数 golang 项目性能绝非瓶颈。
golang 官方从一开始就说没有泛型只是不好实现(怕拖慢编译速度),而不是彻底不考虑未来加入泛型的可能。
根据[golang 官方的开发者调查](
https://blog.golang.org/survey2019-results):> Among the 25% of respondents who said Go lacks language features they need, 79% pointed to generics as a critical missing feature
对于语言特性缺失的调查,其中 79%都指向缺少泛型