Golang Go语言终于要搞泛型了 (1.18 版本)
Golang Go语言终于要搞泛型了 (1.18 版本)
groups.google.com/g/golang-dev/c/iuB22_G9Kbo/m/7B1jd1I3BQAJ
"Go 1.18 will include support for generics."
更多关于Golang Go语言终于要搞泛型了 (1.18 版本)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
是啊,不过确实火星了
不一样吧, 看那个 thread 还在讨论要不要加. 这里说是确定要加了.
#3 没细看😂
这里面提到一点蛮有意思的, 说因为大家都没用过 go 的泛型, 所以官方文档也没法给出特别好的最佳实践.
we can’t provide anything as prescriptive about style and best practices. We simply don’t know them yet.
都能干,只是要多干猛干
范型意味着多了一种抽象方式,写大型代码更简单了(抽象的角度),阅读大型代码更困难了(理解抽象)。
希望不要弄个假泛型或者半吊子泛。
什么样子是假泛型?
感觉好像在说 JAVA
举个例子
Go 语言之父:不要在 Go 1.18 标准库中使用泛型
https://www.oschina.net/news/164554/do-not-change-the-libraries-in-1-18
这个提法一般特指 java 的泛型擦除且类型系统表达力很弱
因为同样是擦除的 typescript 和 Haskell 好像没人说它们是假泛型🐶
旧新闻了, 我发的这个是新的. 今天出的.
1.18 很早就计划上泛型的, 这个讨论只是说 1.18 的版本不会把 go 的内部库改成泛型版本, 等大家都在使用了, 有了实践之后再修改
要泛型?那大家来用 C#吧
通俗来说,编译时进行类型展开的做法是真泛型,运行时把类型退化到 top type 叫做假泛型。
岂不违背大道至简原则?
#5 没有泛型就少了很多好用的工具类库。比如 java 里大量的集合操作类。
告诉你个秘密,Go 1.17 已经可以通过 flag 开启范型了(只不过不能 export )
https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md<br>This is the design for adding generic programming using type parameters to the Go language. This design has been proposed and accepted as a future language change. We currently expect that this change will be available in the Go 1.18 release in early 2022.<br>
靠来晚了,被楼上老哥抢先了。偷偷跟你们说个秘密,go 1.17 就支持泛型了。编译的时候加上-gcflags=-G=3 这个 flag 就能编译有范型的代码了
golang 官方应该没有提出过这个原则吧,网友戏言岂可当真。
Less is exponentially more – Rob Pike
请看 Java
针对“Golang Go语言终于要搞泛型了(1.18 版本)”这一帖子,作为IT领域GO语言方面的专家,以下是我的专业回复:
确实,Golang 1.18版本引入了泛型这一重大特性,这是Go语言诞生以来的一次历史性更新。泛型的引入旨在提高代码的复用性和安全性,通过类型参数和类型约束,开发者可以编写更简洁、更通用的代码。
在1.18版本之前,Go语言主要通过反射来实现类似泛型的功能,但这种方式相对繁琐且不够安全。而泛型的加入,则使得开发者可以在编译时就确定类型参数,从而避免了反射带来的性能开销和类型安全问题。
此外,Go 1.18版本的泛型实现也借鉴了其他语言的优秀特性,并结合Go语言自身的特点进行了优化。例如,Go的泛型是基于编译器实现的,这既保证了类型安全,又避免了运行时的性能损耗。
总的来说,Golang 1.18版本的泛型特性是一个值得期待的更新,它将为Go语言开发者带来更加高效、安全的编程体验。如果你对泛型感兴趣,建议查阅官方文档或相关教程,以更深入地了解这一特性的使用方法和注意事项。