知識分享之Golang——Golang1.18正式發(fā)布泛型到來

知識分享之Golang——Golang1.18正式發(fā)布泛型到來

背景

知識分享之Golang篇是我在日常使用Golang時學習到的各種各樣的知識的記錄派撕,將其整理出來以文章的形式分享給大家,來進行共同學習睬魂。歡迎大家進行持續(xù)關注终吼。

知識分享系列目前包含Java、Golang氯哮、Linux际跪、Docker等等。

開發(fā)環(huán)境

  • 系統(tǒng):windows10
  • 語言:Golang
  • golang版本:1.18

內容

3月15號經歷了七個月喉钢,Go1.18版本發(fā)布了姆打,這個版本是一個重要的階段版本,我們最關注的泛型正式發(fā)布肠虽,同樣的這個版本依舊向下兼容幔戏,因此我們可以在現(xiàn)有的版本上直接進行安裝使用新版本。
以下是本次版本最明顯的變化列表税课,參見官方發(fā)布說明

  • 函數(shù)和類型聲明的語法現(xiàn)在接受類型參數(shù)评抚。
  • 參數(shù)化的函數(shù)和類型可以通過在它們后面加上方括號中的類型參數(shù)列表來實例化豹缀。
  • 新的標記~被添加到操作符和標點符號集合中。
  • 接口類型的語法現(xiàn)在允許嵌入任意類型(不僅僅是接口的類型名)以及聯(lián)合和~T類型元素慨代。這樣的接口只能用作類型約束邢笙。接口現(xiàn)在定義了一組類型和一組方法。
  • 新的預先聲明的標識符any是空接口的別名侍匙。它可以用來代替接口{}氮惯。
  • 新的預先聲明的標識符comparable是一個接口,它表示可以使用==或!=進行比較的所有類型的集合想暗。它只能作為(或嵌入)類型約束使用妇汗。

泛型的一些限制可以查看以下機翻:

當前的泛型實現(xiàn)具有以下已知限制:

  • Go 編譯器無法處理泛型函數(shù)或方法中的類型聲明悲关。我們希望在 Go 1.19 中提供對此功能的支持腊满。
  • realGo 編譯器不接受帶有預先聲明的函數(shù)蛮放、imag和 的參數(shù)類型的參數(shù)complex扑毡。我們希望在 Go 1.19 中取消這個限制。
  • 如果由的約束接口顯式聲明抖所,Go 編譯器僅支持對類型參數(shù)類型m的值 調用方法饱搏。類似地叭披,方法值和方法表達式 也僅在由 顯式聲明時才受支持辽狈,即使由于所有類型都在implement 中可能位于方法集中慈参。我們希望在 Go 1.19 中取消這個限制。 xPmPx.mP.mmPmPPm
  • Go 編譯器不支持訪問類型參數(shù) type 的結構字段x.f 刮萌,x即使類型參數(shù)的類型集中的所有類型都有一個 field f驮配。我們可能會在 Go 1.19 中刪除此限制。
  • 不允許將類型參數(shù)或指向類型參數(shù)的指針作為未命名字段嵌入到結構類型中着茸。同樣壮锻,不允許在接口類型中嵌入類型參數(shù)。目前還不清楚這些是否會被允許涮阔。
  • 具有多個術語的聯(lián)合元素可能不包含具有非空方法集的接口類型猜绣。目前還不清楚這是否會被允許。
  • 泛型也代表了 Go 生態(tài)系統(tǒng)的巨大變化澎语。雖然我們更新了幾個支持泛型的核心工具途事,但還有很多工作要做验懊。剩余的工具擅羞、文檔和庫需要時間才能趕上這些語言變化。

以上是其官方機翻后的主要更新內容义图,下一節(jié)我們將進行編寫一些案例進行使用泛型减俏,并分析哪些場景下我們需要用到這一個特性。

本文聲明:

88x31.png

知識共享許可協(xié)議
本作品由 cn華少 采用 知識共享署名-非商業(yè)性使用 4.0 國際許可協(xié)議 進行許可碱工。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末娃承,一起剝皮案震驚了整個濱河市奏夫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌历筝,老刑警劉巖酗昼,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梳猪,居然都是意外死亡麻削,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門春弥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呛哟,“玉大人,你說我怎么就攤上這事匿沛∩ㄔ穑” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵逃呼,是天一觀的道長鳖孤。 經常有香客問我,道長蜘渣,這世上最難降的妖魔是什么淌铐? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蔫缸,結果婚禮上腿准,老公的妹妹穿的比我還像新娘。我一直安慰自己拾碌,他們只是感情好吐葱,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著校翔,像睡著了一般弟跑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上防症,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天孟辑,我揣著相機與錄音,去河邊找鬼蔫敲。 笑死饲嗽,一個胖子當著我的面吹牛,可吹牛的內容都是我干的奈嘿。 我是一名探鬼主播貌虾,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼裙犹!你這毒婦竟也來了尽狠?” 一聲冷哼從身側響起衔憨,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袄膏,沒想到半個月后践图,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡沉馆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年平项,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悍及。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡闽瓢,死狀恐怖,靈堂內的尸體忽然破棺而出心赶,到底是詐尸還是另有隱情扣讼,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布缨叫,位于F島的核電站椭符,受9級特大地震影響,放射性物質發(fā)生泄漏耻姥。R本人自食惡果不足惜销钝,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琐簇。 院中可真熱鬧蒸健,春花似錦、人聲如沸婉商。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丈秩。三九已至盯捌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蘑秽,已是汗流浹背饺著。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肠牲,地道東北人幼衰。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像埂材,于是被迫代替她去往敵國和親塑顺。 傳聞我的和親對象是個殘疾皇子汤求,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容

  • 對于是否會在以“l(fā)ess is more”為原則的golang語言中增加泛型(generic)特性一直頗有爭議俏险,直...
    YuanJianzheng閱讀 728評論 0 1
  • 泛型 本文原文[https://mp.weixin.qq.com/s/msiA1YTjViTMxnr5TsfskQ...
    科科人神閱讀 1,998評論 0 0
  • Go 在 2019 年發(fā)布了Go 1.12與Go 1.13严拒。Go 1.13 的大部分變化在于工具鏈、運行時和庫的實...
    aoho閱讀 1,025評論 0 0
  • gomonkey 介紹 gomonkey 是 golang 的一款打樁框架,目標是讓用戶在單元測試中低成本的完成打...
    _張曉龍_閱讀 24,238評論 35 30
  • 變化 該草案是一份變化文件莹痢,這意味著這些提案需要隨著時間的推移而改變种蘸。本節(jié)記錄此提案何時發(fā)生更改。 2020/08...
    相思胡楊閱讀 321評論 0 1