我是接觸到了Docker,才接觸到go語言的,它簡潔高效的語法、高效的開發效率和語言層面上的併發支持 深深的吸引了我。
|
語言優點 |
語法簡潔,相比其餘語言更容易上手,開發效率更高; |
自帶垃圾回收(GC),不用再手動申請釋放內存,可以有效避免 Bug,提升性能; |
語言層面的併發支持,讓你很容易開發出高性能的程序; |
提供的標準庫強大,第三方庫也足夠豐富,能夠拿來即用,提升開發效率; |
可經過靜態編譯直接生成一個可執行文件,運行時不依賴其餘庫,部署方便,可伸縮能力強; |
提供跨平臺支持,很容易編譯出跨各個系統平臺直接運行的程序。 |
對比其餘語言,Go 的優點也顯著。好比 Java 雖然具有垃圾回收功能,但它是解釋型語言,須要安裝 JVM 虛擬機才能運行;C 語言雖然不用解釋,能夠直接編譯運行,可是它不具有垃圾回收功能,須要開發者本身管理內存的申請和釋放,容易出問題。而 Go 語言具有了二者的優點。 |
現在微服務和雲原生已經成爲一種趨勢,而 Go 做爲一款高性能的編譯型語言,最適合承載落地微服務的實現 ,又容易生成跨平臺的可執行文件,相比其餘編程語言更容易部署在 Docker 容器中,實現靈活的自動伸縮服務。 |
要想搭建 Go 語言開發環境,須要先下載 Go 語言開發包。你能夠從官網 國外的官網 和國內的官網 下載。linux
Windows MSI 下安裝
MSI 安裝的方式比較簡單,在 Windows 系統上推薦使用這種方式。如今的操做系統基本上都是 64 位的,因此選擇 64 位的 go1.15.windows-amd64.msi 下載便可,若是操做系統是 32 位的,選擇 go1.15.windows-386.msi 進行下載。git
下載後雙擊該 MSI 安裝文件,按照提示一步步地安裝便可。在默認狀況下,Go 語言開發工具包會被安裝到 c:\Go 目錄,你也能夠在安裝過程當中選擇本身想要安裝的目錄。golang
假設安裝到 c:\Go 目錄,安裝程序會自動把 c:\Go\bin 添加到你的 PATH 環境變量中,若是沒有的話,你能夠經過系統 -> 控制面板 -> 高級 -> 環境變量選項來手動添加。web
Linux 下安裝
Linux 系統一樣有 32 位和 64 位,你能夠根據你的 Linux 操做系統選擇相應的壓縮包,它們分別是 go1.15.linux-386.tar.gz 和 go1.15.linux-amd64.tar.gz。編程
下載成功後,須要先進行解壓,假設你下載的是 go1.15.linux-amd64.tar.gz,在終端經過以下命令便可解壓:windows
sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
輸入後回車,而後輸入你的電腦密碼,便可解壓到 /usr/local 目錄,而後把 /usr/local/go/bin 添加到 PATH 環境變量中,就可使用 Go 語言開發工具包了。bash
把下面這段添加到 /etc/profile 或者 $HOME/.profile 文件中,保存後退出便可成功添加環境變量。架構
export PATH=$PATH:/usr/local/go/bin
macOS 下安裝
若是你的操做系統是 macOS,能夠採用 PKG 安裝包。下載 go1.15.darwin-amd64.pkg 後,雙擊按照提示安裝便可。安裝成功後,路徑 /usr/local/go/bin 應該已經被添加到了 PATH 環境變量中,若是沒有的話,你能夠手動添加,和上面 Linux 的方式同樣,把以下內容添加到 /etc/profile 或者 $HOME/.profile 文件保存便可。併發
export PATH=$PATH:/usr/local/go/bin
安裝測試
以上都安裝成功後,你能夠打開終端或者命令提示符,輸入 go version 來驗證 Go 語言開發工具包是否安裝成功。若是成功的話,會打印出 Go 語言的版本和系統信息,以下所示:編程語言
$ go version go version go1.15 darwin/amd64
環境變量設置
Go 語言開發工具包安裝好以後,它的開發環境尚未徹底搭建完成,由於還有兩個重要的環境變量沒有設置,它們分別是 GOPATH 和 GOBIN。
GOPATH:表明 Go 語言項目的工做目錄,在 Go Module 模式以前很是重要,如今基本上用來存放使用 go get 命令獲取的項目。
GOBIN:表明 Go 編譯生成的程序的安裝目錄,好比經過 go install 命令,會把生成的 Go 程序安裝到 GOBIN 目錄下,以供你在終端使用。
假設工做目錄爲 /Users/flysnow/go,你須要把 GOPATH 環境變量設置爲 /Users/flysnow/go,把 GOBIN 環境變量設置爲 $GOPATH/bin。
在 Linux 和 macOS 下,把如下內容添加到 /etc/profile 或者 $HOME/.profile 文件保存便可。
export GOPATH=/Users/flysnow/go export GOBIN=$GOPATH/bin
在 Windows 操做系統中,則經過控制面板 -> 高級 -> 環境變量選項添加這兩個環境變量便可。
項目結構
採用 Go Module 的方式,能夠在任何位置建立你的 Go 語言項目。
假設你的項目位置是 /Users/flysnow/git/gotour,打開終端,輸入以下命令切換到該目錄下:
$ cd /Users/flysnow/git/gotour
而後再執行以下命令建立一個 Go Module 項目:
$ go mod init
執行成功後,會生成一個 go.mod 文件。而後在當前目錄下建立一個 main.go 文件,這樣整個項目目錄結構是:
gotour ├── go.mod ├── lib └── main.go
其中 main.go 是整個項目的入口文件,裏面有 main 函數。lib 目錄是項目的子模塊,根據項目需求能夠新建不少個目錄做爲子模塊,也能夠繼續嵌套爲子模塊的子模塊。
編譯發佈
完成了你的項目後,能夠編譯生成可執行文件,也能夠把它發佈到 $GOBIN 目錄,以供在終端使用。以「Hello 世界」爲例,在項目根目錄輸入如下命令,便可編譯一個可執行文件。
$ go build ./ch01/main.go
回車執行後會在當前目錄生成 main 可執行文件,如今,咱們來測試下它是否可用。
$ ./main Hello, 世界
若是成功打印出「Hello, 世界」,證實程序成功生成。
以上生成的可執行文件在當前目錄,也能夠把它安裝到 $GOBIN 目錄或者任意位置,以下所示:
$ go install ./ch01/main.go
使用 go install 命令便可,如今你在任意時刻打開終端,輸入 main 回車,都會打印出「Hello, 世界」,是否是很方便!
跨平臺編譯
Go 語言開發工具包的另外一強大功能就是能夠跨平臺編譯。什麼是跨平臺編譯呢?就是你在 macOS 開發,能夠編譯 Linux、Window 等平臺上的可執行程序,這樣你開發的程序,就能夠在這些平臺上運行。也就是說,你能夠選擇喜歡的操做系統作開發,並跨平臺編譯成須要發佈平臺的可執行程序便可。
Go 語言經過兩個環境變量來控制跨平臺編譯,它們分別是 GOOS 和 GOARCH 。
GOOS:表明要編譯的目標操做系統,常見的有 Linux、Windows、Darwin 等。
GOARCH:表明要編譯的目標處理器架構,常見的有 38六、AMD6四、ARM64 等。
這樣經過組合不一樣的 GOOS 和 GOARCH,就能夠編譯出不一樣的可執行程序。好比我如今的操做系統是 macOS AMD64 的,我想編譯出 Linux AMD64 的可執行程序,只須要執行 go build 命令便可,如如下代碼所示:
$ GOOS=linux GOARCH=amd64 go build ./ch01/main.go
關於 GOOS 和 GOARCH 更多的組合,參考官方文檔的 $GOOS and $GOARCH 這一節便可。
Go 編輯器推薦
好的編輯器能夠提升開發的效率,這裏我推薦兩款目前最流行的編輯器。
第一款是 Visual Studio Code + Go 擴展插件,可讓你很是高效地開發,經過官方網站 https://code.visualstudio.com/ 下載使用。
第二款是老牌 IDE 公司 JetBrains 推出的 Goland,全部插件已經所有集成,更容易上手,而且功能強大,新手老手都適合,你能夠經過官方網站 https://www.jetbrains.com/go/ 下載使用。
本文分享 CSDN - 希境。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。