V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
BeautifulSoap

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

  •  3
     
  •   BeautifulSoap · Mar 31, 2022 · 3660 views
    This topic created in 1487 days ago, the information mentioned may be changed or developed.

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

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

    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

    欢迎大家指点~

    14 replies    2023-02-03 20:26:49 +08:00
    BBCCBB
        1
    BBCCBB  
       Mar 31, 2022
    学习了
    plutome
        2
    plutome  
       Mar 31, 2022
    很详细了
    NoKey
        3
    NoKey  
       Mar 31, 2022
    大佬,有比较好的 go 的教程么,目前做 java 开发,想学习一下 go
    waising
        4
    waising  
       Mar 31, 2022
    。。。看到这个贴子前,我竟然已经在看 sf 里的文章了
    BeautifulSoap
        5
    BeautifulSoap  
    OP
       Mar 31, 2022
    @NoKey 我是看的 the way to go ,有别的语言基础的话应该很快就能看上手了。有了基础就是写点项目然后遇到不会的直接搜对应的文章就行了。

    the way to go 有中文:

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

    if _, ok := any(arg).(string); ok {
    }
    cityboy
        13
    cityboy  
       May 11, 2022
    写的很详细,好文章~
    runtousa
        14
    runtousa  
       Feb 3, 2023
    op 现在工作用 go 了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   853 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    ♥ Do have faith in what you're doing.