写了篇全面介绍 Go1.18 泛型的文章,可能是目前介绍泛型介绍最详细的文章之一

2022-03-31 13:29:16 +08:00
 BeautifulSoap

断断续续花了我一个多星期时间才写完,可以说是写得挺慢了,但也因此把目前泛型从里到外各种细节也都囊括了进去(如果仍有遗漏地话欢迎指出)

至于为什么要写这文章,这里摘抄下原文的序章:

2022 年 3 月 15 日,争议非常大但同时也备受期待的泛型终于伴随着 Go1.18 发布了。

可是因为 Go 对泛型的支持时间跨度太大,有非常多的以“泛型”为关键字的文章都是在介绍 Go1.18 之前的旧泛型提案或者设计。而很多设计最终在 Go1.18 中被废弃或发生了更改。并且很多介绍 Go1.18 泛型的文章(包括官方的)都过于简单,并没对 Go 的泛型做完整的介绍,也没让大家意识到这次 Go 引入泛型给语言增加了多少复杂度(当然也可能单纯是我没搜到更好的文章)

出于这些原因,我决定参考 The Go Programming Language Specification ,写一篇比较完整系统介绍 Go1.18 泛型的文章。这篇文章可能是目前介绍 Go 泛型比较全面的文章之一了

因为我实在是懒得维护个人博客(手上一堆 vps 和一个独服但没那心思去打理),所以文章选择发在博客平台了,今后有文章也会发在各种平台上(博客园似乎也挺不错得,今后会考虑做一个备选的归档库):

https://juejin.cn/post/7080938405449695268

https://segmentfault.com/a/1190000041634906

欢迎大家指点~

3147 次点击
所在节点    Go 编程语言
14 条回复
BBCCBB
2022-03-31 13:42:20 +08:00
学习了
plutome
2022-03-31 13:57:16 +08:00
很详细了
NoKey
2022-03-31 14:29:38 +08:00
大佬,有比较好的 go 的教程么,目前做 java 开发,想学习一下 go
waising
2022-03-31 14:33:56 +08:00
。。。看到这个贴子前,我竟然已经在看 sf 里的文章了
BeautifulSoap
2022-03-31 14:37:45 +08:00
@NoKey 我是看的 the way to go ,有别的语言基础的话应该很快就能看上手了。有了基础就是写点项目然后遇到不会的直接搜对应的文章就行了。

the way to go 有中文:

https://github.com/unknwon/the-way-to-go_ZH_CN
RedisMasterNode
2022-03-31 14:55:47 +08:00
仔细看了前面一些,写得挺好的加油
proxytoworld
2022-03-31 14:56:49 +08:00
666
fyooo
2022-03-31 15:16:11 +08:00
写的很棒,谢谢分享
EscYezi
2022-03-31 15:57:57 +08:00
抓个虫,掘金上的文章
type WowStruct[int, []int] struct {
Data []iont
MaxValue int
MinValue int
}
iont 应该是 int
linxl
2022-03-31 16:41:46 +08:00
感谢分享,对于从没接触过泛型的我很友好。
BeautifulSoap
2022-03-31 17:10:41 +08:00
@EscYezi 多谢指点,虽然已经修正过一遍了但似乎还有点虫子和措辞的问题,晚上会再次修改一遍~
Kisesy
2022-04-01 14:49:46 +08:00
4.2 动态判断变量的类型 这一节在参数前面用 any 或者 interface 转一下就可以断言了

if _, ok := any(arg).(string); ok {
}
cityboy
2022-05-11 09:40:21 +08:00
写的很详细,好文章~
runtousa
2023-02-03 20:26:49 +08:00
op 现在工作用 go 了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844084

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX