「Go學習筆記」1.初識Go
前言
由於在公司廣泛使用Docker的大環境下,突然對它的程式語言(Go)瞭解下。並且感覺現在Go語言的應用也是越來越廣泛,很多網際網路大廠都在使用,目前利用業餘時間來學習下,主流還是Java,學明白以後可能考慮轉哦?。如果你也感興趣不如一起來學習。
Go介紹
-
簡史
Go語言是Google於2009年正式釋出的一款開源的靜態編譯型語言。Go語言最早於2007年Robert Griesemer(Java HotSpot虛擬機器器、V8引擎開發者之一)和Ken Thompson(貝爾實驗室UNIX團隊成員,C語言、UNIX和Plan9創始人之一)與Rob Pike三人在業餘時間聯合開發。(
老外就是吊
)時至今日Go語言已完成自舉,社群生態斐然,包括大量拿的出手的殺手鐗級專案(Moby、Docker、Kubernetes、Gogs、Grafana、Etcd)。 -
特性
- Go語言擁有自動垃圾回收功能,同時也允許開發人員幹預回收操作。
- Go語言有著更加豐富的內建型別,在錯誤處理方面語法更加精簡高效。
- Go語言函式支援多個返回值,而函式也是一種型別,可以作為引數傳遞。
- Go語言對多核處理器程式設計進行了優化,可以從程式與結構方面來實現併發程式設計。
- Go語言初次編譯速度媲美C/C++,甚至二次編譯的速度明顯快於C/C++,同時又擁有接近於Python等解釋型語言的簡潔。
-
命名規範
Go語言的專案命名一般採用 【域名+專案名】,例如:github.com/example,這樣命名的目錄一是可以分割專案,不容易重名,二是能夠迅速找到原專案的地址,三是方便獲取程式碼包。
-
程式碼強制格式化
Go語言有一個特色就是強製程式碼格式化,在你儲存程式碼之後,可以使用go fmt工具格式化,當然即使沒有手動格式化,在編譯時,Go語言編譯器也會自動格式化所有原始碼,這種強制格式化的做法可以有效統一編碼風格。
開發環境
目前Go語言支援Linux、FreeBSD、Mac OS、和Windows平臺,安裝包可以從 golang.google.cn/dl/ 下載。
基本命令及使用
-
基本命令 安裝Go語言環境後就可以使用go命令了,直接輸入go help檢視有哪些命令可用:
$ go help go是用於管理Go語言原始碼的工具。 用法: go command
-
目錄結構
- GOROOT結構
$GOROOT 作為Go語言環境的根目錄,放置了下面這些內容:
& cd $GOROOT && ls -l -rw-r--r-- 1 root wheel 55389 9 26 02:52 AUTHORS # 所有參與Go語言開發的人員名單 -rw-r--r-- 1 root wheel 1339 9 26 02:52 CONTRIBUTING.md # 為Go語言貢獻程式碼的說明 -rw-r--r-- 1 root wheel 84339 9 26 02:52 CONTRIBUTORS # 所有貢獻者名單 -rw-r--r-- 1 root wheel 1479 9 26 02:52 LICENSE # Go語言的開源協議 -rw-r--r-- 1 root wheel 1303 9 26 02:52 PATENTS # Go語言專利說明 -rw-r--r-- 1 root wheel 1607 9 26 02:52 README.md # 說明檔案 -rw-r--r-- 1 root wheel 397 9 26 02:52 SECURITY.md -rw-r--r-- 1 root wheel 8 9 26 02:52 VERSION # Go語言版本檔案 drwxr-xr-x 19 root wheel 608 9 26 02:55 api # Go語言API相關(變數、常量、函式) drwxr-xr-x 4 root wheel 128 9 26 02:55 bin # 用於儲存標準命令執行檔案,go、godoc、gofmt三件套 drwxr-xr-x 50 root wheel 1600 9 26 02:55 doc # 存放標準庫的檔案 -rw-r--r-- 1 root wheel 5686 9 26 02:52 favicon.ico # Go語言的圖示 drwxr-xr-x 3 root wheel 96 9 26 02:55 lib # 存放一些特殊的庫檔案 drwxr-xr-x 16 root wheel 512 9 26 02:55 misc # 輔助工具和說明 drwxr-xr-x 6 root wheel 192 9 26 02:55 pkg # 存放Go語言標準庫生成的檔案 -rw-r--r-- 1 root wheel 26 9 26 02:52 robots.txt # 禁止搜尋引擎索引本地啟動的Go檔案 drwxr-xr-x 71 root wheel 2272 9 26 02:55 src # 存放GO語言自己的原始碼 drwxr-xr-x 327 root wheel 10464 9 26 02:55 test # 存放測試驗證相關的檔案 複製程式碼
- GOPATH結構
$GOPATH就是一個工作目錄,我們開發GO語言程式就是在這裡進行的,這個目錄一般有三個資料夾:
- bin: 存放go install生成的可執行檔案前面把$GOPATH/bin路徑加入PATH環境變數後就可以在全域性任意位置使用這個資料夾內的執行檔案。 - pkg: 存放go編輯生成的檔案。 - src: 存放我們開發的Go專案的原始碼,不用工程專案的程式碼已包名區分。 複製程式碼
開發工具
-
Visual Studio Code
來自微軟的開源編輯器Visual Studio Code的確是開發Go語言程式的好工具之一,龐大的生態系統使得它不僅僅是一個編輯器,它還擁有大部分Go語言開發過程中使用的工具鏈。
-
VIM-Go
VIM編輯器是大部分程式設計師的最愛之一,在VIM的生態中也有一款比較流行的GO語言開發外掛----VIM-GO,安裝這個外掛與安裝其他VIM外掛的方法一樣。
-
Gogland
來自著名的Jetbrains公司開發的IDE(Goland)是一款專門為Go語言開發而設計的IDE。
-
LiteIDE
LiteIDE是一款專門為GO語言開發的跨平臺輕量級整合開發環境,LiteIDE是開源的工具,程式碼託管在github上。
第一個Go程式
現在開始編寫第一個程式了,建立一個組織目錄,例如 code.local,然後建立一個專案名為hello-word,最終目錄路徑為$PATH/src/code.local/hello-word
接來下使用vim 編輯一個main.go 然後:wq儲存,接來下可以直接使用go run命令執行程式。 到此我們就完成了第一個go程式。隨著go語言越來越?,我對它也是很感興趣,無奈沒有太多的時間來學習,只能用週末來抽空看看,希望大家多多支援,如果你也對Go語言感興趣,不妨點選下關注,一起學習。