Go語(yǔ)言快速入門圖文教程
推薦閱讀:
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(又稱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)格類似于 C 語(yǔ)言,但是其語(yǔ)法在 C 語(yǔ)言的基礎(chǔ)上做了大幅度簡(jiǎn)化,如去掉了冗余的表達(dá)式括號(hào),循環(huán)遍歷也只有
for
一種寫法等; - 工程結(jié)構(gòu)簡(jiǎn)單;
- 代碼可讀性和易用性高;
- 編譯速度快,由于其語(yǔ)法簡(jiǎn)單、工程結(jié)構(gòu)設(shè)計(jì)嚴(yán)謹(jǐn)、沒(méi)有頭文件、無(wú)包交叉依賴等特點(diǎn),很大程度上節(jié)約了編譯所需耗時(shí)。
- 高性能,原生支持并發(fā)。Go 語(yǔ)言的并發(fā)基于
goroutine
, 它類似于線程,但并非線程。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)稱是互聯(lián)網(wǎng)時(shí)代的 C 語(yǔ)言,那么它到底有多火呢?
1.絕大多數(shù)的云原生項(xiàng)目都是用 Go 語(yǔ)言編寫的,比如:
- 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)于安裝包名稱,你需要了解的:
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 | 依賴的一些庫(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)買的云服務(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),則表示成功。
六、寫個(gè) Hello World 程序
通常來(lái)說(shuō),入門任何一門語(yǔ)言,編寫的第一個(gè)程序都是用該語(yǔ)言向世界打聲招呼: Hello World !
開(kāi)始
接下來(lái),我們來(lái)編寫第一個(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ǔ)
本文中小哈主要講了如何快速入門 Go 語(yǔ)言,起到一個(gè)拋磚引玉的作用,如果本文能夠?qū)π』锇閭冇杏茫M』锇閭內(nèi)B一波!
以上就是Go語(yǔ)言快速入門圖文教程的詳細(xì)內(nèi)容,更多關(guān)于Go語(yǔ)言入門教程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go開(kāi)發(fā)中有哪幾種無(wú)法恢復(fù)的致命場(chǎng)景分析
這篇文章主要為大家介紹了Go有哪幾種無(wú)法恢復(fù)的致命場(chǎng)景示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08golang elasticsearch Client的使用詳解
這篇文章主要介紹了golang elasticsearch Client的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05Golang中HTTP服務(wù)的分析與設(shè)計(jì)詳解
這篇文章主要介紹了Golang中HTTP服務(wù)的分析與設(shè)計(jì),HTTP服務(wù)是實(shí)現(xiàn)Web應(yīng)用程序的重要組成部分,為了實(shí)現(xiàn)高效可擴(kuò)展的Web應(yīng)用程序,需要對(duì)HTTP服務(wù)進(jìn)行分析與設(shè)計(jì),需要的朋友可以參考下2023-05-05Golang語(yǔ)言如何避免空指針引發(fā)的panic詳解
簡(jiǎn)單地說(shuō)go語(yǔ)言的指針類型和C/C++的指針類型用法是一樣的,除了出去安全性的考慮,go語(yǔ)言增加了一些限制,這篇文章主要給大家介紹了關(guān)于Golang語(yǔ)言如何避免空指針引發(fā)panic的相關(guān)資料,需要的朋友可以參考下2022-01-01gin自定義中間件解決requestBody不可重讀(請(qǐng)求體取值)
這篇文章主要介紹了gin自定義中間件解決requestBody不可重讀,確保控制器能夠獲取請(qǐng)求體值,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10讓GPT教你用go語(yǔ)言和C語(yǔ)言開(kāi)發(fā)IDE配置學(xué)習(xí)
這篇文章主要介紹了讓GPT教你用go語(yǔ)言和C語(yǔ)言開(kāi)發(fā)IDE配置學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Golang簡(jiǎn)介與基本語(yǔ)法的學(xué)習(xí)
這篇文章主要介紹了Golang簡(jiǎn)介與基本語(yǔ)法的學(xué)習(xí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Golang import本地包和導(dǎo)入問(wèn)題相關(guān)詳解
這篇文章主要介紹了Golang import本地包和導(dǎo)入問(wèn)題相關(guān)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02