interface{} 与其他语言泛型的区别
来源:6-4 接口的值类型

198703
2020-04-04
老师好,感觉interface{} 可以实现类似泛型的效果,为什么有人诟病go没泛型吗?
真正的泛型是在编译阶段完成的类型擦除,应该本质和interface{}是一样吧。
以后golang会有泛型吗?
写回答
1回答
-
的确是这样,很多诟病go语言没有泛型的同学对泛型本身理解不深。
不过泛型还是有他一定的好处的。我在最后一章 19-1 体会Go语言的设计 中也有所总结。所以在go 2.x版本中有考虑引入泛型。
最后,纠正一下java中这种所谓的类型擦除,不是真正的泛型。它只是java的泛型为了和之前兼容而采用的折衷的办法。真正的泛型中,参数的类型不应该被擦除,应该保留到运行时。比如java中传一个List<Stirng>过来,你应该可以在运行时知道这个List里的东西是String。
30
相似问题