在 Fedora 上開啟 Go 語言之旅

2019-09-01 22:37:00

Go 程式語言於 2009 年首次公開發布,此後被廣泛使用。特別是,Go 已經成為雲基礎設施領域的一種代表性語言,例如 KubernetesOpenShiftTerraform 等大型專案都使用了 Go。

Go 越來越受歡迎的原因是效能好、易於編寫高並行的程式、語法簡單和編譯快。

讓我們來看看如何在 Fedora 上開始 Go 語言程式設計吧。

在 Fedora 上安裝 Go

Fedora 可以通過官方庫簡單快速地安裝 Go 語言。

$ sudo dnf install -y golang$ go versiongo version go1.12.7 linux/amd64

既然裝好了 Go ,讓我們來寫個簡單的程式,編譯並執行。

第一個 Go 程式

讓我們來用 Go 語言寫一波 “Hello, World!”。首先建立 main.go 檔案,然後輸入或者拷貝以下內容。

package mainimport "fmt"func main() {     fmt.Println("Hello, World!")}

執行這個程式很簡單。

$ go run main.goHello, World!

Go 會在臨時目錄將 main.go 編譯成二進位制檔案並執行,然後刪除臨時目錄。這個命令非常適合在開發過程中快速執行程式,它還凸顯了 Go 的編譯速度。

編譯一個可執行程式就像執行它一樣簡單。

$ go build main.go$ ./mainHello, World!

使用 Go 的模組

Go 1.11 和 1.12 引入了對模組的初步支援。模組可用於管理應用程式的各種依賴包。Go 通過 go.modgo.sum 這兩個檔案,顯式地定義依賴包的版本。

為了演示如何使用模組,讓我們為 hello world 程式新增一個依賴。

在更改程式碼之前,需要初始化模組。

$ go mod init helloworldgo: creating new go.mod: module helloworld$ lsgo.mod main  main.go

然後按照以下內容修改 main.go 檔案。

package mainimport "github.com/fatih/color"func main () {     color.Blue("Hello, World!")}

在修改後的 main.go 中,不再使用標準庫 fmt 來列印 “Hello, World!” ,而是使用第三方庫列印出有色字型。

讓我們來跑一下新版的程式吧。

$ go run main.goHello, World!

因為程式依賴於 github.com/fatih/color 庫,它需要在編譯前下載所有依賴包。 然後把依賴包都新增到 go.mod 中,並將它們的版本號和雜湊值記錄在 go.sum 中。