可以學(xué)習(xí)黑馬程序員的這個(gè)教程
創(chuàng)新互聯(lián)建站是一家專業(yè)提供龍港企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為龍港眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
20小時(shí)快速入門go語言:網(wǎng)頁鏈接
go語言的優(yōu)勢(shì)
可直接編譯成機(jī)器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個(gè)文件上去就完成了。
靜態(tài)類型語言,但是有動(dòng)態(tài)語言的感覺,靜態(tài)類型的語言就是可以在編譯的時(shí)候檢查出來隱藏的大多數(shù)問題,動(dòng)態(tài)語言的感覺就是有很多的包可以使用,寫起來的效率很高。
語言層面支持并發(fā),這個(gè)就是Go最大的特色,天生的支持并發(fā)。Go就是基因里面支持的并發(fā),可以充分的利用多核,很容易的使用并發(fā)。
內(nèi)置runtime,支持垃圾回收,這屬于動(dòng)態(tài)語言的特性之一吧,雖然目前來說GC(內(nèi)存垃圾回收機(jī)制)不算完美,但是足以應(yīng)付我們所能遇到的大多數(shù)情況,特別是Go1.1之后的GC。
簡單易學(xué),Go語言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go關(guān)鍵字是25個(gè),但是表達(dá)能力很強(qiáng)大,幾乎支持大多數(shù)你在其他語言見過的特性:繼承、重載、對(duì)象等。
豐富的標(biāo)準(zhǔn)庫,Go目前已經(jīng)內(nèi)置了大量的庫,特別是網(wǎng)絡(luò)庫非常強(qiáng)大。
內(nèi)置強(qiáng)大的工具,Go語言里面內(nèi)置了很多工具鏈,最好的應(yīng)該是gofmt工具,自動(dòng)化格式化代碼,能夠讓團(tuán)隊(duì)review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。
跨平臺(tái)編譯,如果你寫的Go代碼不包含cgo,那么就可以做到window系統(tǒng)編譯linux的應(yīng)用,如何做到的呢?Go引用了plan9的代碼,這就是不依賴系統(tǒng)的信息。
內(nèi)嵌C支持,Go里面也可以直接包含C代碼,利用現(xiàn)有的豐富的C庫。
可以去黑馬程序員視頻庫下載,里面有很多免費(fèi)視頻,簡直是自學(xué)者的資源庫。
除了Java、Python和JavaScript之外,如果要開始學(xué)習(xí)一門新語言的話,我想應(yīng)該是Go!
Go語言正在被越來越多的公司使用。我們公司的后端服務(wù)已經(jīng)全面采用Go語言實(shí)現(xiàn)了。
最開始接觸Go語言是去年將一份Go代碼“翻譯”成Python并集成到測(cè)試平臺(tái)上,說來也挺神奇,我從來沒學(xué)過Go卻完成了這個(gè)工作,這也側(cè)面反應(yīng)了Go的語法還是很平易近人的。
今年,在海翔飛調(diào)崗之后已經(jīng)沒有太多時(shí)間寫代碼了,但如果要開始學(xué)習(xí)一個(gè)新的語言或技術(shù)的話,我最想學(xué)的是Go!
目前來看,Go似乎還并沒有太多測(cè)試人員使用的場(chǎng)景,不過,我之前介紹過的BDD行為驅(qū)動(dòng)框架gauge是由Go開發(fā)的,當(dāng)然,它也支持使用Go來編寫B(tài)DD測(cè)試代碼。
對(duì)于,已經(jīng)有一定開發(fā)經(jīng)驗(yàn)的同學(xué),如何快速的開始學(xué)習(xí)Go語言呢?我這里給一些思路。
#### 第一步:下載和安裝
在配置環(huán)境的時(shí)候你需要重點(diǎn)了解GOROOT、GOPATH的作用。
你還要準(zhǔn)備一款稱手的編輯器,如果你像我一樣,一直都在使用VS Code的話,那么就它就可以了。
#### 第二步:從hello world開始
先運(yùn)行一個(gè)hello world程序,認(rèn)識(shí)Go語言的語法。
package main
import ( ? ?"fmt")
func main(){
fmt.Println("helloworld!")
}
#### 第三步:熟悉Go的語法
接下來,你可能要花一周左右的時(shí)間熟悉Go語言的語法。比如,變量定義、if/for、函數(shù)、Map、跨文件的程序調(diào)用…等,當(dāng)然,還有一些Go特有的知識(shí)。
當(dāng)然,我更喜歡看視頻教程,雖然質(zhì)量參差不齊,但我仍然覺得看視頻比我自己看書更有效率。
熟悉一段Go代碼:
package main
import"fmt"
func myFunc() {
i := 0
Here: ? //這行的第一個(gè)詞,以冒號(hào)結(jié)束作為標(biāo)簽
fmt.Println(i)
i++ ? ?if i 10{ ? ? ? ?goto Here ? //跳轉(zhuǎn)到Here去
}
}func main() { ? ?//調(diào)用函數(shù)
myFunc()
}
#### 第四步:Go如何做單元測(cè)試
針對(duì)Go做測(cè)試也非常簡單。比如,這是一個(gè)被測(cè)試文件:add.go。
package test_demofunc Add(a int, b int) int{ ? ?return a + b
}
下面針對(duì)Add()函數(shù)編寫測(cè)試用例,test_add.go
package test_demo
import ( ? ?"testing")
func TestAdd1(t *testing.T){
r:= Add(1, 2) ? ?if r !=3{
t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)
}
}
func TestAdd2(t *testing.T){
r:= Add(2, 2) ? ?if r !=4{
t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)
}
}
你只需要執(zhí)行?go test?命令就可以運(yùn)行上面的測(cè)試了。
#### 第五步:從哪兒找第三方庫
當(dāng)然,你只學(xué)習(xí)go語言本身,基本是做不了什么事的,必須要使用第三方擴(kuò)展庫。
這里羅列了Go語言的第三方庫,通過這些第三方庫的介紹,我們也可以大概知道Go可以用來干什么。
如果你知道庫的名字的話,也可以在這個(gè)網(wǎng)站上搜索。
據(jù)我了解,Go的第三方庫大多都在GitHub上面。
#### 第六步:用Go做Web開發(fā)
Go是靜態(tài)語言,而且支持并發(fā)編程,所以,他有天然的性能優(yōu)勢(shì),大多公司主要使用Go也是開發(fā)后端服務(wù)(即API)。
終于到了實(shí)戰(zhàn)階段,如果我們真的要掌握一門語言,那么一定要用它來開發(fā)一個(gè)項(xiàng)目出來。這個(gè)過程大概需要一個(gè)月。
Beego是Go下在主流的Web開發(fā)框架,資料相對(duì)比較豐富,而且有完善的文檔。你可為此制定一個(gè)目標(biāo),比如用它來開發(fā)一個(gè)Blog,為此,你需要詳細(xì)閱讀Beego文檔,以及學(xué)習(xí)相關(guān)的Web開發(fā)技術(shù)。
等你完成這個(gè)項(xiàng)目的時(shí)候,我想你已經(jīng)會(huì)使用Go語言了。
看的是黑馬程序員的:20小時(shí)快速入門Go語言,老師講的還可以,你可以看一下,如果有編程基礎(chǔ),入門是很快的。