最佳答案
有人知道为什么 Go 中没有对泛型/模板/whatsInAName 的真正支持吗?所以有一个通用的 map
,但它是由编译器提供的,而 Go 程序员不能编写自己的实现。在所有关于使 Go 尽可能正交的讨论中,为什么我可以使用泛型类型而不创建一个新类型?
特别是当涉及到函数式编程时,有 lambdas,甚至闭包,但是对于缺乏泛型的静态类型系统,我如何编写像 filter(predicate, list)
这样的泛型高阶函数?好的,链表之类的可以用 interface{}
牺牲类型安全来完成。
似乎只有在事后才会将泛型添加到 Go 中,如果有的话。我相信 Ken Thompson 会比 Java 实现者做得更好,但是为什么要把泛型排除在外呢?还是它们已经计划好了,只是还没有付诸实施?