寫在前面的話侧戴,我也是最近剛剛接觸Go語言旦袋,寫這個系列的目的就是記錄自己學(xué)習(xí)的點點滴滴衙四。
Go語言發(fā)展歷程
??1 2009年11月10日,Google將Go語言以開放源代碼的方式向全球發(fā)布为朋。
??2 2015年8月19日臂拓,Go 1.5 版發(fā)布,本次更新中移除了最后的C代碼习寸。
??3 2017年2月17日胶惰,Go 語言1.8 版本發(fā)布。
??4 2017年8月24日霞溪,Go語言1.9版本發(fā)布孵滞。
??5 2018年2月16日,Go語言1.10版本發(fā)布鸯匹。
Go語言特點
Go是一種新的語言坊饶,一種并發(fā)的、帶垃圾回收的忽你、快速編譯的語言。保證了既能達(dá)到靜態(tài)編譯語言的安全和性能臂容,又達(dá)到了動態(tài)語言開發(fā)維護(hù)的高效率科雳。它具有一下幾點:
??1 它可以在一臺計算機上用幾秒鐘的時間編譯一個大型的Go程序根蟹。
??2 Go為軟件構(gòu)造提供了一種模型,它使依賴分析更加容易糟秘,且避免了大部分C風(fēng)格include文件與庫的開頭简逮。
??3 Go是靜態(tài)類型的語言,它的類型系統(tǒng)沒有層級尿赚。因此用戶不需要在定義類型之間的關(guān)系上花費時間散庶, 這樣感覺起來比典型的面向?qū)ο笳Z言更輕量級。
??4 Go完全是垃圾回收型的語言凌净,并為并發(fā)執(zhí)行與通信提供了基本的支持悲龟,不需要開發(fā)人員管理。
??5 Go打算為多核機器上系統(tǒng)軟件的構(gòu)造提供一種方法冰寻。
??6 引入了包的概念须教,Go語言的一個文件都要歸屬于一個包。而不能單獨存在斩芭。
package main
import "fmt"
func main(){
fmt.Printn("hello world")
}
??7 天然支持高并發(fā)
?? ?? ??1) 從語言層面支持并發(fā)實現(xiàn)簡單轻腺。
?? ?? ??2)goroutine
輕量級線程,可實現(xiàn)大并發(fā)處理划乖,高效利用多核贬养。
?? ?? ??3)基于GPS
并發(fā)模型實現(xiàn)。
??8 吸收了管道通信機制琴庵,形成Go語言特有的管道(chanel
)通過管道可以實現(xiàn)不同的goroute
之間的互相通信误算。
??9 函數(shù)可以返回多個值
func Test(n1 int,n2 int)(int,int){
sub:=n1-n2
sum:=n1+n2
return sub,sum
}
??10 新的創(chuàng)新,比如 切片slice
延時執(zhí)行 defer
Go語言開發(fā)工具
??1 Vs Code
??2 Idea
??3 Subline Text
??4 Vim
??5 Emacs
....
Go語言環(huán)境安裝
?? 根據(jù)自己電腦的操作系統(tǒng)可以到官網(wǎng)下載相對應(yīng)的版本進(jìn)行安裝细卧。
安裝完之后配置環(huán)境變量以及工作目錄尉桩。
GOROOT
GOPATH
PATH
相關(guān)配置網(wǎng)上資料很多就不一一贅述了。