新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
快報(bào):正式提案將泛型特性加入Go語言
本文轉(zhuǎn)載自微信公眾號(hào)「腦子進(jìn)煎魚了」,作者陳煎魚。轉(zhuǎn)載本文請(qǐng)聯(lián)系腦子進(jìn)煎魚了公眾號(hào)。

大家好,我是煎魚。
經(jīng)歷九九八十一難,多年的不斷探討和 Go 語言愛好者們?cè)谏鐓^(qū)中的強(qiáng)烈關(guān)注,且 Go 官方在 2020 年不斷放出消息。
總算在 2021 年 1 月 12 日,官方正式提出將泛型特性加入 Go 語言的 proposal 了,且最新的草案設(shè)計(jì)已經(jīng)更新。
基本語法如下:
- func Print[T any](s []T) {
- // same as above
- }
其大體的概述如下:
- 函數(shù)可以具有使用方括號(hào)的其他類型參數(shù)列表,但其他情況下看起來像普通的參數(shù)列表:func F[T any](p T) { ... }。
- 類型也可以具有類型參數(shù)列表:type MySlice[T any] []T。
- 每個(gè)類型參數(shù)都有一個(gè)類型約束,就像每個(gè)普通參數(shù)都有一個(gè)類型:func F[T Constraint](p T) { ... }。
- 類型約束是接口類型。
- 新的預(yù)聲明名稱 any 是允許任何類型的類型約束。
- 用作類型約束的接口類型可以具有預(yù)先聲明的類型的列表。只有與那些類型之一匹配的類型參數(shù)才能滿足約束條件。
- 泛型函數(shù)只能使用其類型約束所允許的操作。
- 使用泛型函數(shù)或類型需要傳遞類型實(shí)參。
- 在通常情況下,類型推斷允許省略函數(shù)調(diào)用的類型參數(shù)。
根據(jù)官方博客的消息,如果該提案被正式接受。那么將會(huì)在 2021 年底之前完成一個(gè)基本可用的泛型功能(可能未完全優(yōu)化),又或是會(huì)作為 Go1.18beta 的一部分。
這是 Go 泛型特性的又一步歷史性前進(jìn),這一個(gè)里程碑。若大家有興趣進(jìn)一步了解或想提出意見,可查看下述傳送門:
- [A Proposal for Adding Generics to Go]:https://blog.golang.org/generics-proposal。
- [proposal: spec: add generic programming using type parameters]:https://github.com/golang/go/issues/43651。
不知道今年年底或 Go1.18beta 能不能真的看到泛型的正式完整可用版本呢,值得期待!
當(dāng)前標(biāo)題:快報(bào):正式提案將泛型特性加入Go語言
文章位置:http://www.dlmjj.cn/article/cdhgpig.html


咨詢
建站咨詢
