Go 1.18 正式发布了!支持泛型、性能优化...
距离 Go 1.17 发布七个月后,Go 1.18 正式发布了!Go 1.18 是一个包含大量新功能的版本,包括对语言本身做了有史以来最大的改变(泛型)、工具链的实现、运行时和库的更改,还改善了性能。 与往常一样,该版本保持了 Go 1的兼容性承诺:几乎所有 Go 程序都能像以前一样继续编译和运行。下面来看一下新版本的一些重大特性: 泛型 以下是关于 Go 1.18 泛型的最明显变化的列表,如需更全面的概述请参阅泛型提案,更详细信息请参阅语言规范。 函数和类型声明的语法,现在接受类型参数。 参数化函数和类型可以通过在方括号中列出类型参数来实例化。 新标记~已添加到操作符和标点符号中。 接口类型的语法现在允许嵌入任意类型(不仅仅是接口的类型名称)以及 union 和 ~T 类型元素。,这样的接口只能用作类型约束。 新的预声明标识符any是空接口的别名,可以用来代替interface{}. 新的预声明标识符comparable是一个接口,表示可以使用==或者!= 比较的所有类型的集合,它只能用作(或嵌入)类型约束。 有三个使用泛型的实验包可能有用,这些包在 x/exp 存储库中;但它们的 ...

