为什么Go中没有泛型?

有谁知道为什么Go中没有对泛型/模板/ whatsInAName的真正支持?因此,有一个通用的map,但由编译器提供,而Go程序员不能编写自己的实现。关于如何使Go尽可能正交的所有讨论,为什么我可以使用通用类型而不创建新类型?

尤其是在函数式编程方面,有lambda甚至闭包,但是在缺少泛型的静态类型系统中,我该如何编写泛型高阶函数,如filter(predicate, list)?好的,可以通过interface{}牺牲类型安全性来完成链接列表等。

由于在SO / Google上进行的快速搜索没有发现任何见解,因此,仿制药(如果有的话)似乎会在事后添加到Go中。我相信Thompson会比Java员工做得更好,但是为什么要排除泛型呢?还是他们已经计划并且尚未实施?


吃鸡游戏
浏览 430回答 3
3回答

HUX布斯

实际上,根据这篇文章:许多人得出结论(错误地认为),Go团队的立场是“ Go永远不会拥有泛型”。相反,我们了解潜在的泛型,既可以使Go变得更加灵活和强大,也可以使Go变得更加复杂。如果要添加泛型,我们希望以一种既可以实现最大程度的灵活性和强大功能,又可以尽可能减少复杂性的方式来实现。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go