go語(yǔ)言是后端語(yǔ)言。go語(yǔ)言是服務(wù)端的編程語(yǔ)言,其方向主要是后端。使用Go語(yǔ)言做后端開發(fā)的原因:1、在語(yǔ)言層面具有語(yǔ)法簡(jiǎn)潔、執(zhí)行效率高(底層語(yǔ)言)的特點(diǎn);2、Go語(yǔ)言是主打并發(fā)、為并發(fā)而生的,其出發(fā)點(diǎn)即是瞄準(zhǔn)大數(shù)據(jù)+云計(jì)算時(shí)代背景下的高并發(fā)、分布式應(yīng)用場(chǎng)景;3、Go語(yǔ)言可以在不同平臺(tái)直接編譯生成可執(zhí)行程序,基礎(chǔ)內(nèi)存占用很少。
php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
go語(yǔ)言是服務(wù)端的編程語(yǔ)言,go語(yǔ)言的方向不是前端,主要是后端。
Go(又稱 Golang)是谷歌開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言。Go于2009年11月正式宣布推出,成為開放源代碼項(xiàng)目,并在Linux及Mac平臺(tái)上進(jìn)行了實(shí)現(xiàn),后來(lái)追加了Windows系統(tǒng)下的實(shí)現(xiàn)。
Go 語(yǔ)言語(yǔ)法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。
描述
Go的語(yǔ)法接近C語(yǔ)言,但對(duì)于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語(yǔ)言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動(dòng)態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語(yǔ)言級(jí)支持。Go 2.0版本將支持泛型,對(duì)于斷言的存在,則持負(fù)面態(tài)度,同時(shí)也為自己不提供類型繼承來(lái)辯護(hù)。
不同于Java,Go內(nèi)嵌了關(guān)聯(lián)數(shù)組(也稱為哈希表(Hashes)或字典(Dictionaries) ),就像字符串類型一樣
為什么使用Go語(yǔ)言做后端開發(fā)?
1、簡(jiǎn)單高效:幾乎所有主流的編程語(yǔ)言如Java、C++、PHP、Python、JavaScript等等都是可以用于服務(wù)端開發(fā)的,Go語(yǔ)言作為后起之秀,在語(yǔ)言層面具有語(yǔ)法簡(jiǎn)潔、執(zhí)行效率高(底層語(yǔ)言)的特點(diǎn);相比之下,Java和Python、PHP都顯得低效,C++則太過(guò)麻煩,而Go則可以做到簡(jiǎn)單與高效兼顧;
2、高并發(fā):Go語(yǔ)言是主打并發(fā)、為并發(fā)而生的,其出發(fā)點(diǎn)即是瞄準(zhǔn)大數(shù)據(jù)+云計(jì)算時(shí)代背景下的高并發(fā)、分布式應(yīng)用場(chǎng)景;
3、跨平臺(tái):可以在不同平臺(tái)直接編譯生成可執(zhí)行程序,基礎(chǔ)內(nèi)存占用很少,小應(yīng)用占用幾M大型應(yīng)用占用個(gè)幾十M就能很好運(yùn)行,這使得golang可以在樹莓派之類的小設(shè)備上很好的運(yùn)行,這一點(diǎn)表現(xiàn)比java要好的多;
容器化、分布式、微服務(wù)化是服務(wù)端發(fā)展的潮流,在這幾個(gè)方向上:
1、容器化:容器領(lǐng)域Go語(yǔ)言是絕對(duì)的霸主,大家所熟知的Docker和Kubernets(K8S)就是使用Go語(yǔ)言開發(fā)的;
2、分布式:最好的例證就是以太坊,因?yàn)閰^(qū)塊鏈即分布式賬本;
3、微服務(wù):Go語(yǔ)言支持微服務(wù)的最好例證是今日頭條,今日頭條當(dāng)前后端服務(wù)超過(guò)80%的流量是跑在 Go 構(gòu)建的服務(wù)上。微服務(wù)數(shù)量超過(guò)100個(gè),高峰 QPS 超過(guò)700萬(wàn),日處理請(qǐng)求量超過(guò)3000億,可能是業(yè)內(nèi)最大規(guī)模的Go應(yīng)用。
Go語(yǔ)言作為后端語(yǔ)言,跟其他后端語(yǔ)言相比,Go有什么優(yōu)勢(shì)或者特點(diǎn)呢?
-
語(yǔ)言層面支持并發(fā),這個(gè)就是Go最大的特色,很容易編寫多線程程序,可以充分的利用多核。
-
作為出生在21世紀(jì)的編程語(yǔ)言,支持垃圾回收,跟Java一樣不需要開發(fā)人員管理內(nèi)存,可以專注于業(yè)務(wù)實(shí)現(xiàn)。
-
豐富的標(biāo)準(zhǔn)庫(kù),Go內(nèi)置了大量的庫(kù),特別是網(wǎng)絡(luò)庫(kù)非常強(qiáng)大。
-
Go 語(yǔ)言的部署比較簡(jiǎn)單,直接編成機(jī)器碼,而且還有跨平臺(tái)的編譯的選項(xiàng)。
-
Go語(yǔ)言的理念是“少即是極多”,相對(duì)于C++,Java來(lái)說(shuō),Go語(yǔ)言更容易上手。
撰寫風(fēng)格
在Go中有幾項(xiàng)規(guī)定,當(dāng)不匹配以下規(guī)定時(shí)編譯將會(huì)產(chǎn)生錯(cuò)誤。
-
每行程序結(jié)束后不需要撰寫分號(hào)。
-
左大括號(hào)不能夠換行放置。
-
if判斷式和for循環(huán)不需要以小括號(hào)包覆起來(lái)。
Go亦有內(nèi)置gofmt工具,能夠自動(dòng)整理代碼多余的空白、變量名稱對(duì)齊、并將對(duì)齊空格轉(zhuǎn)換成Tab?!?/p>