Go語(yǔ)言快速入門(mén)圖文教程
推薦閱讀:
go語(yǔ)言最新版激活教程可以點(diǎn)下這個(gè)鏈接查看。
goland永久安裝教程,點(diǎn)擊此處查看。
Go 這幾年很火,小哈也蹭業(yè)余時(shí)間悄咪咪學(xué)習(xí)一下(我大 Java 依舊無(wú)敵😤),雖然暫時(shí)公司技術(shù)棧用不到,但保不準(zhǔn)后面有新項(xiàng)目選型 Go, 到時(shí)候就能直接干活了。
技術(shù)儲(chǔ)備還是要有的,我們要偷偷努力,然后驚艷所有人,哈哈~ 廢話不多說(shuō),開(kāi)干!
一、什么是 Go 語(yǔ)言?
Go(又稱(chēng)Golang)是 Goolge 開(kāi)發(fā)的一種靜態(tài)型、編譯型、并發(fā)型,并具有垃圾回收功能的語(yǔ)言。
羅伯特·格瑞史莫,羅勃·派克(Rob Pike)及肯·湯普遜于2007年9月開(kāi)始設(shè)計(jì)了Go語(yǔ)言,設(shè)計(jì)初衷是為了提高在多核、網(wǎng)絡(luò)機(jī)器(networked machines)、大型代碼庫(kù)(codebases)的情況下的開(kāi)發(fā)效率。當(dāng)時(shí)在Google,設(shè)計(jì)師們想要去除主流編程語(yǔ)言中目前存在的缺點(diǎn),只吸取它們的優(yōu)點(diǎn)用于 Go 語(yǔ)言之中。
Go于2009年11月正式開(kāi)源,同時(shí)支持 Linux、MacOS、Windows 等操作系統(tǒng)。
2016年,Go語(yǔ)言被 TIOBE 評(píng)為 "年度最佳語(yǔ)言"。
二、Go 語(yǔ)言特性
- Go 語(yǔ)言上手非常容易,它的風(fēng)格類(lèi)似于 C 語(yǔ)言,但是其語(yǔ)法在 C 語(yǔ)言的基礎(chǔ)上做了大幅度簡(jiǎn)化,如去掉了冗余的表達(dá)式括號(hào),循環(huán)遍歷也只有
for一種寫(xiě)法等; - 工程結(jié)構(gòu)簡(jiǎn)單;
- 代碼可讀性和易用性高;
- 編譯速度快,由于其語(yǔ)法簡(jiǎn)單、工程結(jié)構(gòu)設(shè)計(jì)嚴(yán)謹(jǐn)、沒(méi)有頭文件、無(wú)包交叉依賴(lài)等特點(diǎn),很大程度上節(jié)約了編譯所需耗時(shí)。
- 高性能,原生支持并發(fā)。Go 語(yǔ)言的并發(fā)基于
goroutine, 它類(lèi)似于線程,但并非線程。Go 語(yǔ)言運(yùn)行時(shí),會(huì)參與調(diào)度goroutine, 并將goroutine合理的分配到每個(gè) CPU 中,從而最大程度的保證 CPU 的使用率。 - 豐富強(qiáng)大的標(biāo)準(zhǔn)庫(kù),其中包括網(wǎng)絡(luò)、圖形、系統(tǒng)、加密、編碼等各個(gè)方面。
三、Go 語(yǔ)言有多火 ?
Go 語(yǔ)言號(hào)稱(chēng)是互聯(lián)網(wǎng)時(shí)代的 C 語(yǔ)言,那么它到底有多火呢?
1.絕大多數(shù)的云原生項(xiàng)目都是用 Go 語(yǔ)言編寫(xiě)的,比如:
- Docker: 容器化技術(shù);
- Kubernetes: 構(gòu)建于 Docker 之上的容器調(diào)度服務(wù);
- etcd: 一款分布式、可靠的 KV 存儲(chǔ)系統(tǒng);
- Istio: 一個(gè)與 Kubernetes 緊密結(jié)合的適用于云原生場(chǎng)景的 Service Mesh 形態(tài)的用于服務(wù)治理的開(kāi)放平臺(tái);
- Prometheus: 一個(gè)開(kāi)源的服務(wù)監(jiān)控系統(tǒng)和時(shí)間序列數(shù)據(jù)庫(kù);
- ...
2.Go 語(yǔ)言將會(huì)成為云計(jì)算時(shí)代的基礎(chǔ)設(shè)施編程語(yǔ)言,比如區(qū)塊鏈明星項(xiàng)目 Hyperledger、NewSQL , 明星項(xiàng)目 TiDB 也是基于 Go 語(yǔ)言的;
3.Go 語(yǔ)言已經(jīng)成為下一個(gè)企業(yè)級(jí)編程語(yǔ)言,包括字節(jié)跳動(dòng)、滴滴、騰訊、阿里巴巴在內(nèi)的一線互聯(lián)網(wǎng)公司都在使用。

四、下載 Go 安裝包
想要學(xué)習(xí) Go 語(yǔ)言, 首先得下載 Go 語(yǔ)言安裝包??梢郧巴缦聝蓚€(gè)網(wǎng)站下載:
Golang 中國(guó): https://golang.google.cn/dl/
Go 語(yǔ)言官網(wǎng): https://golang.org/dl/
提示: Go 語(yǔ)言官網(wǎng)需要科學(xué)上網(wǎng)才能訪問(wèn),推薦到第一個(gè)鏈接進(jìn)行下載。
訪問(wèn)成功后,如下圖,根據(jù)自己的系統(tǒng),選擇對(duì)應(yīng)的 Go 語(yǔ)言安裝包,點(diǎn)擊下載即可。

下載好對(duì)應(yīng)系統(tǒng)安裝包后,可參見(jiàn)后續(xù)章節(jié)的安裝說(shuō)明:
若你選擇從源碼構(gòu)建,可參考 官方構(gòu)建文檔。
另外,Go 語(yǔ)言歷史版本,請(qǐng)參見(jiàn): http://docs.studygolang.com/doc/devel/release.html
相關(guān)說(shuō)明
| 文件名 | 說(shuō)明 |
|---|---|
| go1.15.3.windows-amd64.msi | Windows 平臺(tái)安裝包 |
| go1.15.3.linux-amd64.tar.gz | Linux 平臺(tái)安裝包 |
| go1.15.3.darwin-amd64.pkg | MaxOS 平臺(tái)安裝包 |
| go1.15.3.src.tar.gz | Go 語(yǔ)言源碼包,作研究用,日常開(kāi)發(fā)不推薦下載 |
五、安裝 Go 語(yǔ)言環(huán)境
Windows 安裝 Go
本小節(jié),小哈將演示如何在 Windows 系統(tǒng)上安裝 Go 語(yǔ)言環(huán)境。

PS: 關(guān)于安裝包名稱(chēng),你需要了解的:
1.15.4 表示的是當(dāng)前 Go 安裝包的版本號(hào);
windows 表示這是 Windows 系統(tǒng)的安裝包;
amd64 表示匹配 64 位的 CPU;
下載完成后,雙擊安裝包開(kāi)始安裝:

點(diǎn)擊 Next:

這里 Go 開(kāi)發(fā)包的默認(rèn)安裝路徑為 C:\Go\, 推薦使用這個(gè)默認(rèn)路徑。

安裝完成后,我們可以到 C:\Go\ 目錄下,看看目錄結(jié)構(gòu):

Go 安裝目錄說(shuō)明
| 目錄名 | 說(shuō)明 |
|---|---|
| api | 各個(gè)版本 api 變更差異 |
| bin | go 源碼包編譯出來(lái)的編譯器、格式化工具、文檔工具等 |
| doc | 英文版的 Go 文檔 |
| lib | 依賴(lài)的一些庫(kù)文件 |
| misc | 其他用途的相關(guān)文件,如 Android 平臺(tái)的編譯等 |
| pkg | Windows 平臺(tái)編譯好的中間文件 |
| src | 標(biāo)準(zhǔn)庫(kù)源碼 |
| test | 測(cè)試用例 |
檢查 Windows 系統(tǒng) Go 環(huán)境是否安裝成功
打開(kāi) cmd 窗口,執(zhí)行命令:
go version
若正確輸出 Go 語(yǔ)言的版本號(hào),表示安裝成功:

Linux 安裝 Go
這里,小哈以自己購(gòu)買(mǎi)的云服務(wù)器 CentOS 7 做演示。

下載完成后,將壓縮包上傳到指定目錄下,執(zhí)行如下命令,將壓縮包解壓到 /usr/local/go 下:
tar -C /usr/local -xzf go1.15.4.linux-amd64.tar.gz
解壓完成后,通過(guò) vi 編輯器打開(kāi) profile 文件:
vi /etc/profile
在 profile 文件中添加下面這行,目的是將 /usr/local/go/bin 目錄添加到 PATH 環(huán)境變量中去:
export PATH=$PATH:/usr/local/go/bin
然后執(zhí)行如下命令,讓新添加的環(huán)境變量生效:
source /etc/profile
完成后,執(zhí)行如下命令,檢查 Go 語(yǔ)言是否安裝成功:
go version
若正確輸出 Go 語(yǔ)言版本號(hào),則表示安裝成功。

Mac 安裝 Go
Mac 系統(tǒng)有下面兩種安裝方式。
通過(guò) brew 安裝
執(zhí)行如下命令:
brew install go
或者
brew install golang
另外,也可以先通過(guò) brew info go查看一下版本信息。

官網(wǎng)下載 Go 語(yǔ)言 pkg 包來(lái)安裝

下載完成后,雙擊開(kāi)始安裝:

點(diǎn)擊繼續(xù),等待Go安裝完成。
配置Go語(yǔ)言環(huán)境變量
默認(rèn)會(huì)將Go安裝到 /usr/local/go路徑下,接下來(lái),開(kāi)始配置Go語(yǔ)言環(huán)境變量。
1、編輯 .bash_profile 文件:
vim ~/.bash_profile
2、添加 /usr/local/go 目錄到 PATH 環(huán)境變量中:
# Go環(huán)境變量 export PATH=$PATH:/usr/local/go/bin
3、執(zhí)行如下命令,使環(huán)境變量生效:
source ~/.bash_profile
驗(yàn)證結(jié)果
通過(guò)如下命令,來(lái)驗(yàn)證 Go 語(yǔ)言環(huán)境是否安裝成功:
go version
若正確輸出 Go 語(yǔ)言的版本號(hào),則表示成功。

六、寫(xiě)個(gè) Hello World 程序
通常來(lái)說(shuō),入門(mén)任何一門(mén)語(yǔ)言,編寫(xiě)的第一個(gè)程序都是用該語(yǔ)言向世界打聲招呼: Hello World !
開(kāi)始
接下來(lái),我們來(lái)編寫(xiě)第一個(gè) Go 語(yǔ)言程序,新建一個(gè) helloworld.go 文件,代碼如下:
提示: Go 語(yǔ)言源文件的拓展名以 .go 結(jié)尾。
package main
import "fmt"
func main() {
fmt.Println("Hello World !")
}
上面代碼的意思是在控制臺(tái)打印字符串:Hello World !
執(zhí)行 Go 程序
我們有兩種方式來(lái)執(zhí)行上面這個(gè)程序。
第一種方式
通過(guò) go run 命令來(lái)執(zhí)行剛剛的代碼, 執(zhí)行命令如下:
go run helloworld.go
效果圖如下:

第二種方式
還可以通過(guò)執(zhí)行 go build 命令,將剛剛這段代碼編譯成可執(zhí)行文件:
go build helloworld.go
編譯完成后,可以在目錄下看到一個(gè) helloworld可執(zhí)行文件,通過(guò) ./helloworld 命令來(lái)執(zhí)行它,即可輸出 Hello World !

七、結(jié)語(yǔ)
本文中小哈主要講了如何快速入門(mén) Go 語(yǔ)言,起到一個(gè)拋磚引玉的作用,如果本文能夠?qū)π』锇閭冇杏?,希望小伙伴們?nèi)B一波!
以上就是Go語(yǔ)言快速入門(mén)圖文教程的詳細(xì)內(nèi)容,更多關(guān)于Go語(yǔ)言入門(mén)教程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang中Delve版本太低無(wú)法Debug的問(wèn)題
這篇文章主要介紹了Golang中Delve版本太低無(wú)法Debug的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
一文帶你了解Go語(yǔ)言中的指針和結(jié)構(gòu)體
前面的兩篇文章對(duì)?Go?語(yǔ)言的基礎(chǔ)語(yǔ)法和基本數(shù)據(jù)類(lèi)型以及幾個(gè)復(fù)合數(shù)據(jù)類(lèi)型進(jìn)行介紹,本文將對(duì)?Go?里面的指針和結(jié)構(gòu)體進(jìn)行介紹,也為后續(xù)文章做鋪墊,感興趣的可以了解一下2022-11-11
Go語(yǔ)言學(xué)習(xí)教程之goroutine和通道的示例詳解
這篇文章主要通過(guò)A?Tour?of?Go中的例子進(jìn)行學(xué)習(xí),以此了解Go語(yǔ)言中的goroutine和通道,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-09-09
RabbitMQ延時(shí)消息隊(duì)列在golang中的使用詳解
延時(shí)隊(duì)列常使用在某些業(yè)務(wù)場(chǎng)景,使用延時(shí)隊(duì)列可以簡(jiǎn)化系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)、提高系統(tǒng)的可靠性和可用性、提高系統(tǒng)的性能,下面我們就來(lái)看看如何在golang中使用RabbitMQ的延時(shí)消息隊(duì)列吧2023-11-11
golang如何解決go get命令無(wú)響應(yīng)問(wèn)題
文章介紹了在Go語(yǔ)言中處理由于官方庫(kù)被封禁導(dǎo)致依賴(lài)下載失敗的方法,包括設(shè)置代理和直接克隆依賴(lài)包到GOPATH/src下2024-12-12
golang文件服務(wù)器的兩種方式(可以訪問(wèn)任何目錄)
這篇文章主要介紹了golang文件服務(wù)器的兩種方式,可以訪問(wèn)任何目錄,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)對(duì)象校驗(yàn)結(jié)構(gòu)體
這篇文章主要為大家介紹了GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)對(duì)象校驗(yàn)結(jié)構(gòu)體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

