Go泛型提案已提交,Go 1.18 beta有望试用

开源中国 2021-01-14 17:52

喜欢就关注我们吧!

Go 团队核心成员 Ian Lance Taylor 宣布已提交为 Go 添加泛型的提案 (Proposal)。

Ian 在博客说道:“为 Go 添加泛型的语言变更完全向后兼容 (fully backward compatible),现有的 Go 程序会继续像现在一样正常运行。”

Ian 还表示如果提案能通过,Go 团队会在年底前发布一个完整但可能未优化的实现,以供开发者试用,或许会在 Go 1.18 beta 中提供。

泛型草案设计概要

  • 函数可以使用带方括号的类型参数列表,类型参数列表的其他方面和普通参数列表一样: func F[T any](p T) { ... }

  • 这些类型参数可以被常规参数使用,也可以在函数体中使用

  • 类型 (Types) 也可以使用类型参数列表: type M[T any] []T

  • 每个类型参数都有一个类型约束,正如普通参数都有一个类型:func F[T Constraint](p T) { ... }

  • 类型约束属于接口类型

  • 新的预声明名称any是允许任何类型的类型约束

  • 用作类型约束的接口类型可以使用预声明类型的列表;只有与这些类型之一相匹配的类型参数才能满足约束条件

  • 泛型函数只能使用其类型约束所允许的操作

  • 使用泛型函数或类型需要传递类型参数

  • 在通常情况下,类型推断允许省略函数调用的类型参数



详情查看:
Proposal: https://golang.org/issue/43651


Draft Design: 
https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md


Flash 未死

2021-01-13

Linus Torvalds再改页面锁逻辑

2021-01-12

GitHub程序员考公指南冲热榜,已超5k Star

2021-01-13



觉得不错,请点个在看