因爲在公司普遍使用Docker的大環境下,忽然對它的編程語言(Go)瞭解下。而且感受如今Go語言的應用也是愈來愈普遍,不少互聯網大廠都在使用,目前利用業餘時間來學習下,主流仍是Java,學明白之後可能考慮轉哦🤡。若是你也感興趣不如一塊兒來學習。git
簡史程序員
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)。github
特性golang
命名規範編程
Go語言的項目命名通常採用 【域名+項目名】,例如:github.com/example,這樣命名的目錄一是能夠分割項目,不容易重名,二是可以迅速找到原項目的地址,三是方便獲取代碼包。vim
代碼強制格式化api
Go語言有一個特點就是強制代碼格式化,在你保存代碼以後,可使用go fmt工具格式化,固然即便沒有手動格式化,在編譯時,Go語言編譯器也會自動格式化全部源代碼,這種強制格式化的作法能夠有效統一編碼風格。bash
目前Go語言支持Linux、FreeBSD、Mac OS、和Windows平臺,安裝包能夠從 golang.google.cn/dl/ 下載。併發
基本命令 安裝Go語言環境後就可使用go命令了,直接輸入go help查看有哪些命令可用:編程語言
$ go help
go是用於管理Go語言源代碼的工具。
用法:
go command [arguments]
包含的命令以下:
- build: 編譯源代碼包和依賴。
- clean: 刪除對象文件。
- doc: 顯示Go包或程序實體的文檔。
- env: 打印輸出Go語言環境的變量信息。
- bug: bug提交程序。
- fix: 修復程序。
- fmt: 格式化源碼包中代碼。
- generate: 經過掃描Go源碼中的go:generate註釋來識別要運行的常規命令。
- get: 下載並安裝指定的包與依賴。
- install: 編譯並安裝指定的包與依賴。
- list: 打印指定源碼包信息。
- run: 編譯並運行Go程序。
- test: 測試一個源碼包。
- tool: 運行一個指定的tool。
- version: 打印輸出Go環境版本。
- vet: 檢查源碼包中可能出現的錯誤。
使用"go help [command]"查看每個命令的使用細節。
複製代碼
目錄結構
$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就是一個工做目錄,咱們開發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上。
如今開始編寫第一個程序了,建立一個組織目錄,例如 code.local,而後創建一個項目名爲hello-word,最終目錄路徑爲$PATH/src/code.local/hello-word