自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

正式支持泛型!Go語言發(fā)布有史以來最大更新

原創(chuàng) 精選
開發(fā) 開發(fā)工具
在Go 1.18版本中,引入了對使用參數(shù)化類型的泛型代碼的新支持。

  美國時間2022年3月15日,Go核心團隊官宣了Go 1.18版本正式版的發(fā)布,其官博稱之為“整個Go社區(qū)的一個巨大的里程碑”。在這個版本中,Go核心團隊做了Go語言開源以來的最大一次語法特性變更——增加了對泛型(generics)的支持。

  這里簡要整理一下 Go 1.18版本的重大更新。

  泛型(Generics):在Go 1.18版本中,引入了對使用參數(shù)化類型的泛型代碼的新支持。支持泛型是Go最常被要求添加的功能特性,這一版本能夠提供大多數(shù)用戶目前需要的泛型支持。隨后的版本將繼續(xù)為一些更復(fù)雜的泛型用例提供額外支持。Go官方提供了泛型教程來幫助開發(fā)者了解這個新功能,探索使用泛型來優(yōu)化和簡化代碼的方法。

  模糊測試(Fuzzing):伴隨著Go 1.18版本的發(fā)布,Go成為第一個將模糊測試完全整合到其標(biāo)準(zhǔn)工具鏈中的主要編程語言。這意味著與其他語言不同,不需要第三方支持集成。作為一種測試軟件漏洞的方法,模糊測試的集成為Go的代碼增加了一層額外的安全保障,尤其在當(dāng)下,隨著網(wǎng)絡(luò)攻擊在頻率和復(fù)雜性上不斷升級,這一點顯然至關(guān)重要。

  在Go的模糊測試中,會使用隨機的數(shù)據(jù)對代碼進行測試,以嘗試找出漏洞或?qū)е卤罎⒌妮斎搿?梢酝ㄟ^模糊測試發(fā)現(xiàn)的一些漏洞示例包括 SQL 注入、緩沖區(qū)溢出、拒絕服務(wù)和跨站點腳本攻擊。Go官方也提供了模糊測試教程,來幫助用戶理解使用這個新功能。

模糊測試示例

  工作區(qū)(Workspaces):當(dāng)前,Go module幾乎已被普遍接納和采用。在Go團隊2021年的用戶調(diào)查中,用戶反饋Go module的最常見的挑戰(zhàn)是跨多個module工作。Go 1.18版本通過新的Go工作區(qū)模式(Go workspace mode)解決了這一問題,這使得在多個module中工作變得簡單。

  20%的性能改進:對于蘋果M1、ARM64和PowerPC64用戶來說,這是一條絕對的好消息。由于Go 1.17的寄存器ABI調(diào)用約定擴展到這些架構(gòu),Go 1.18的CPU性能提升幅度高達20%。

  關(guān)于這一版本更詳細(xì)的信息,可查閱Go 1.18發(fā)布說明(https://go.dev/doc/go1.18)。

  Go語言發(fā)展小史

  2007年9月,在Rob Pike 回復(fù)給 Robert Griesemer、Ken Thompson 的郵件中,談到了一門全新的編程語言,其設(shè)計仍在雛形中,建議將之取名為Go。在敲定名字之后,Rob、Robert、Ken 三人開始在 Google 內(nèi)部進行研發(fā)。

  2008年5月,Go的研發(fā)獲得了 Google 的全力支持。

  2009年11月10日,Go 項目團隊首次公開發(fā)布該語言,并將代碼全部開源,這一天也被定為Go的官方生日。其源代碼最初托管在 http://code.google.com 上,之后幾年才逐步的遷移到 GitHub 上。

  2011年,Go 語言的第一個穩(wěn)定(stable)版本 r56 發(fā)布。

  2012年,Golang 的第一個正式版本 Go1 發(fā)布。

  2013年:Go 1.1 和 Go 1.2 正式版本發(fā)布。

  2014年:Go 1.3 和 Go 1.4 正式版本發(fā)布。

  2015年:Go 1.5 正式版本發(fā)布。

  2016年:Go 1.6 和 Go 1.7 正式版本發(fā)布。

  2017年:Go 1.8 和 Go 1.9 正式版本發(fā)布。

  2018年:Go 1.10 和 Go 1.11 正式版本發(fā)布。

  2019年:Go 1.12 和 Go 1.13 正式版本發(fā)布。

  2020年:Go 1.14 和 Go 1.15 正式版本發(fā)布。

  2021年:Go 1.16 和 Go 1.17 正式版本發(fā)布。

  可以看到,自從踏上發(fā)展正軌后,Go語言基本保持了每半年發(fā)布一次的更新頻率。綜合來看,Go 開源至今已逾12年,盡管背靠大樹,但其發(fā)展過程仍然比較曲折。最初發(fā)布時獲得了一定關(guān)注,而后就開始走下坡路,直到2015年重新設(shè)計優(yōu)化 GC 實現(xiàn)后才開始觸底反彈,2016年重新流行起來,直到現(xiàn)在也維持在主流編程語言之列。

  當(dāng)前,Go 語言在國內(nèi)也熱度頗高。一方面是基于其高效的開發(fā)方式,另一方面則因為Go 語言天生“為云而生”,在全面擁抱云的時代得天獨厚。

  對開發(fā)者來說,Go 語言在保證了快速編譯的同時,也保證了高效的開發(fā)效率和程序運行性能。相較于 Java 和 C++ 的滯重,Go 語言可以讓開發(fā)速度更快、更容易,且性能也不差。此外,Go 語言的特性也不多,更容易上手,尤其對有 C 語言基礎(chǔ)的同學(xué),學(xué)習(xí)成本較低。

  放眼全球,使用 Go 語言的大公司和優(yōu)秀開源項目都比較多。有人稱 Go 為云端的編程語言。因為 Go 語言生成的二進制可執(zhí)行文件很小,快速啟動,內(nèi)存占用也很小,在容器中運行時,沒有遺留負(fù)擔(dān)。很多CNCF項目,包括Kubernetes和Istio,都是用Go編寫的。

  隨著基礎(chǔ)設(shè)施的不斷云化,Go 語言的發(fā)展未來可期。

責(zé)任編輯:張潔 來源: 51CTO
相關(guān)推薦

2016-12-15 15:26:22

Linux內(nèi)核版本

2021-11-01 12:41:39

Go

2025-04-27 05:00:00

2021-01-14 05:20:48

Go語言泛型

2024-10-28 00:40:49

Go語法版本

2013-07-11 08:51:06

編程語言

2022-03-28 13:34:26

Go泛型部署泛型

2020-09-29 07:24:30

智能

2021-12-01 08:29:17

Go泛型Maps

2009-05-14 09:01:01

Google AppsSaaSGoogle

2015-07-16 15:45:56

2021-08-27 10:55:18

桌面GNOME 41Linux

2021-09-29 18:17:30

Go泛型語言

2022-06-15 09:15:35

?CloudflarHTTPS DDoS攻擊

2023-11-29 08:19:45

Go泛型缺陷

2024-12-30 11:05:28

泛型Go類型別名

2009-07-28 09:28:32

OperaJavaScript

2014-08-15 16:02:10

Akamai

2014-12-17 09:26:26

GoAndroid
點贊
收藏

51CTO技術(shù)棧公眾號