go語(yǔ)言的缺點(diǎn):1、技術(shù)路線選擇導(dǎo)致的“性能劣勢(shì)”,go屬于GC類編程語(yǔ)言,在一些性能超級(jí)敏感的場(chǎng)合,選擇Go依然要慎重。2、表達(dá)方法單一”、顯式的錯(cuò)誤處理有點(diǎn)“過(guò)時(shí)”。3、最小版本選擇MVS,背離主流。4、Go核心團(tuán)隊(duì)對(duì)語(yǔ)言演化的把控力十足,不是社區(qū)多數(shù)人贊同的就一定會(huì)被采納而加入Go語(yǔ)言,導(dǎo)致在社區(qū)上有劣勢(shì),Go社區(qū)與Go核心團(tuán)隊(duì)有“裂痕”。5、功能孱弱。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
每種編程語(yǔ)言都有自己的優(yōu)勢(shì)和劣勢(shì),Go也不例外,下面我們就來(lái)列舉一下Go的那些“優(yōu)勢(shì)”和“劣勢(shì)”:
Go優(yōu)勢(shì)
1、簡(jiǎn)單易學(xué)
Go語(yǔ)言語(yǔ)法簡(jiǎn)單,其中包含了類似C語(yǔ)言的語(yǔ)法。如果讀者已經(jīng)掌握了兩到三門(mén)編程語(yǔ)言,那么學(xué)習(xí)Go語(yǔ)言只需要幾天的時(shí)間。即使是一名剛?cè)腴T(mén)的開(kāi)發(fā)者,花幾個(gè)星期也能寫(xiě)出性能較高的Go語(yǔ)言程序。
2、自由高效
Go語(yǔ)言的編譯速度明顯優(yōu)于 Java 和 C++,還擁有接近C語(yǔ)言的運(yùn)行效率以及接近 PHP 的開(kāi)發(fā)效率,可以說(shuō)Go語(yǔ)言將運(yùn)行效率和開(kāi)發(fā)效率進(jìn)行了完美的融合。
同時(shí),Go語(yǔ)言還支持當(dāng)前所有的編程范式,包括過(guò)程式編程、面向?qū)ο缶幊?、面向接口編程、函?shù)式編程。開(kāi)發(fā)者們可根據(jù)需求自由組合。
3、強(qiáng)大的標(biāo)準(zhǔn)庫(kù)
Go里面的標(biāo)準(zhǔn)庫(kù)非常穩(wěn)定并且豐富多樣,包括網(wǎng)絡(luò)、系統(tǒng)、加密、編碼、圖形等各個(gè)方面。尤其是網(wǎng)絡(luò)和系統(tǒng)的庫(kù)非常實(shí)用,使得開(kāi)發(fā)者在開(kāi)發(fā)大型程序時(shí),幾乎無(wú)須依賴第三方庫(kù)。
4、部署方便
不需要使用虛擬機(jī),Go語(yǔ)言的代碼可以直接輸出為二進(jìn)制可執(zhí)行文件。而且Go語(yǔ)言擁有自己的鏈接器,不依賴任何系統(tǒng)提供的編譯器和鏈接器。因此編譯出的二進(jìn)制可執(zhí)行文件幾乎可以運(yùn)行在任何系統(tǒng)環(huán)境中。
5、原生支持并發(fā)
Go語(yǔ)言是一種非常高效的語(yǔ)言,從語(yǔ)言層原生支持并發(fā),使用起來(lái)非常簡(jiǎn)單。Go語(yǔ)言的并發(fā)是基于 Goroutine 的,Goroutine 類似于線程,但并非線程,是Go語(yǔ)言面向線程的輕量級(jí)方法。創(chuàng)建 Goroutine 的成本很低,只需幾千個(gè)字節(jié)的額外內(nèi)存。
通常一臺(tái)普通的桌面主機(jī)運(yùn)行上百個(gè)線程就會(huì)負(fù)載過(guò)大,而同樣的主機(jī)卻可以運(yùn)行上千甚至上萬(wàn)個(gè) Goroutine。Goroutine 之間可以通過(guò) channel 實(shí)現(xiàn)通信。Goroutine 以及基于 channel 的并發(fā)性方法可最大限度地使用 CPU 資源。
6、穩(wěn)定性強(qiáng)
Go語(yǔ)言擁有強(qiáng)大的編譯檢查、嚴(yán)格的編碼規(guī)范和很強(qiáng)的穩(wěn)定性,此外Go語(yǔ)言還提供了軟件生命周期(如開(kāi)發(fā)、測(cè)試、部署、維護(hù)等)的各個(gè)環(huán)節(jié)的工具,例如:go tool、go fmt、go test 等。
7、垃圾回收
在使用Go語(yǔ)言進(jìn)行開(kāi)發(fā)時(shí),在內(nèi)存方面開(kāi)發(fā)者只需要關(guān)注內(nèi)存的申請(qǐng)即可,并不需要關(guān)系內(nèi)存的釋放,因?yàn)镚o語(yǔ)言內(nèi)置了 runtime 來(lái)自動(dòng)進(jìn)行管理。雖然目前來(lái)說(shuō) GC(Garbage Collection,垃圾回收機(jī)制)不算完美,但是足以應(yīng)付開(kāi)發(fā)時(shí)遇到的大多數(shù)情況,使開(kāi)發(fā)者可以將