基礎入門: 編寫第一個 Go 語言程式

Swenson1992發表於2021-02-01

Hello, Golang

如果你學過 C 語言,對這個經典的例子應該不會陌生。通過它,我先帶你大概瞭解一下 Go 語言的一些核心理念,讓你對 Go 語言程式碼有個整體的印象。如下所示:
main.go

package main

import "fmt"

func main() {
    fmt.Println("Hello, Golang")
}

這五行程式碼就構成了一個完整的 Go 程式,是不是非常簡單?現在我執行這段程式碼,看看輸出的結果,方法是開啟終端輸入以下命令,然後回車。

$ go run main.go
Hello, Golang

其中 go run main.go 是我輸入的命令,回車後看到的“Hello, Golang”是 Go 程式輸出的結果。

程式碼中的 go 是一個 Go 語言開發工具包提供的命令,它和你平時常用的 ls 命令一樣都是可執行的命令。它可以幫助你執行 Go 語言程式碼,並進行編譯,生成可執行的二進位制檔案等。

run 在這裡是 go 命令的子命令,表示要執行 Go 語言程式碼的意思。最後的 main.go 就是我寫的 Go 語言程式碼檔案了。也就是說,整個 go run main.go 表示要執行 main.go 裡的 Go 語言程式碼。

程式結構分析

要讓一個 Go 語言程式成功執行起來,只需要 package main 和 main 函式這兩個核心部分, package main 代表的是一個可執行的應用程式,而 main 函式則是這個應用程式的主入口。
在“Hello, 世界”這個簡單的示例中,包含了一個 Go 語言程式執行的最基本的核心結構。我們以此為例,來逐一介紹程式的結構,瞭解 Go 語言的核心概念。

  • 第一行的 package main 代表當前的 main.go 檔案屬於哪個包,其中 package 是 Go 語言宣告包的關鍵字,main 是要宣告的包名。在 Go 語言中 main 包是一個特殊的包,代表你的 Go 語言專案是一個可執行的應用程式,而不是一個被其他專案引用的庫。
  • 第二行的 import “fmt” 是匯入一個 fmt 包,其中 import 是 Go 語言的關鍵字,表示匯入包的意思,這裡我匯入的是 fmt 包,匯入的目的是要使用它,下面會繼續講到。
  • 第三行的 func main() 是定義了一個函式,其中 func 是 Go 語言的關鍵字,表示要定義一個函式或者方法的意思,main 是函式名,() 空括號表示這個 main 函式不接受任何引數。在 Go 語言中 main 函式是一個特殊的函式,它代表整個程式的入口,也就是程式在執行的時候,會先呼叫 main 函式,然後通過 main 函式再呼叫其他函式,達到實現專案業務需求的目的。
  • 第四行的 fmt.Println(“Hello, 世界”) 是通過 fmt 包的 Println 函式列印“Hello, 世界”這段文字。其中 fmt 是剛剛匯入的包,要想使用一個包,必須先匯入。Println 函式是屬於包 fmt 的函式,這裡我需要它列印輸出一段文字,也就是“Hello, Golang”。
  • 第五行的大括號 } 表示 main 函式體的結束。現在整個程式碼片段已經分析完了,執行就可以看到“Hello, 世界”結果的輸出。

從以上分析來看,Go 語言的程式碼是非常簡潔、完整的核心程式,只需要 package、import、func main 這些核心概念就可以實現。 在後面的課時中,我還會講如何使用變數,如何自定義函式等,這裡先略過不講,我們先來看看 Go 語言的開發環境是如何搭建的,這樣才能執行上面的 Go 語言程式碼,讓整個程式跑起來。

Go 語言環境搭建

要想搭建 Go 語言開發環境,需要先下載 Go 語言開發包。你可以從官網 golang.org/dl/golang.google.cn/dl/ 下載(第一個連結是國外的官網,第二個是國內的官網,如果第一個訪問不了,可以從第二個下載)。

下載時可以根據自己的作業系統選擇相應的開發包,比如 Window、MacOS 或是 Linux 等,如下圖所示:

Go

Windows MSI 下安裝

MSI 安裝的方式比較簡單,在 Windows 系統上推薦使用這種方式。現在的作業系統基本上都是 64 位的,所以選擇 64 位的 go1.15.windows-amd64.msi 下載即可,如果作業系統是 32 位的,選擇 go1.15.windows-386.msi 進行下載。

下載後雙擊該 MSI 安裝檔案,按照提示一步步地安裝即可。在預設情況下,Go 語言開發工具包會被安裝到 c:\Go 目錄,你也可以在安裝過程中選擇自己想要安裝的目錄。

假設安裝到 c:\Go 目錄,安裝程式會自動把 c:\Go\bin 新增到你的 PATH 環境變數中,如果沒有的話,你可以通過系統 -> 控制皮膚 -> 高階 -> 環境變數選項來手動新增。

Linux 下安裝

Linux 系統同樣有 32 位和 64 位,你可以根據你的 Linux 作業系統選擇相應的壓縮包,它們分別是 go1.15.linux-386.tar.gz 和 go1.15.linux-amd64.tar.gz。

下載成功後,需要先進行解壓,假設你下載的是 go1.15.linux-amd64.tar.gz,在終端通過如下命令即可解壓:

sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz

輸入後回車,然後輸入你的電腦密碼,即可解壓到 /usr/local 目錄,然後把 /usr/local/go/bin 新增到 PATH 環境變數中,就可以使用 Go 語言開發工具包了。

把下面這段新增到 /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/xxx/go,你需要把 GOPATH 環境變數設定為 /Users/xxx/go,把 GOBIN 環境變數設定為 $GOPATH/bin。

在 Linux 和 macOS 下,把以下內容新增到 /etc/profile 或者 $HOME/.profile 檔案儲存即可。

export GOPATH=/Users/xxx/go
export GOBIN=$GOPATH/bin

在 Windows 作業系統中,則通過控制皮膚 -> 高階 -> 環境變數選項新增這兩個環境變數即可。

專案結構

採用 Go Module 的方式,可以在任何位置建立你的 Go 語言專案。在整個專欄中,我都會使用這種方式演示 Go 語言示例,現在你先對 Go Module 專案結構有一個大概瞭解,後面的課時我會詳細地介紹 Go Module。

假設你的專案位置是 /Users/xxx/go/src/demo,開啟終端,輸入如下命令切換到該目錄下:

$ cd /Users/xxx/go/src/demo

然後再執行如下命令建立一個 Go Module 專案:

$ go mod init

執行成功後,會生成一個 go.mod 檔案。然後在當前目錄下建立一個 main.go 檔案,這樣整個專案目錄結構是:

demo
├── go.mod
├── lib
└── main.go

其中 main.go 是整個專案的入口檔案,裡面有 main 函式。lib 目錄是專案的子模組,根據專案需求可以新建很多個目錄作為子模組,也可以繼續巢狀為子模組的子模組。

編譯釋出

完成了你的專案後,可以編譯生成可執行檔案,也可以把它釋出到 $GOBIN 目錄,以供在終端使用。以“Hello Golang”為例,在專案根目錄輸入以下命令,即可編譯一個可執行檔案。

$ go build main.go

回車執行後會在當前目錄生成 main 可執行檔案,現在,我們來測試下它是否可用。

$ ./main
Hello, Golang

如果成功列印出“Hello, Golang”,證明程式成功生成。
以上生成的可執行檔案在當前目錄,也可以把它安裝到 $GOBIN 目錄或者任意位置,如下所示:

$ go install main.go

使用 go install 命令即可,現在你在任意時刻開啟終端,輸入 main 回車,都會列印出“Hello, Golang”,是不是很方便!

跨平臺編譯

可以參考之前的博文Golang在各平臺下如何交叉編譯

Go 編輯器推薦

好的編輯器可以提高開發的效率,這裡我推薦兩款目前最流行的編輯器。

第一款是 Visual Studio Code + Go 擴充套件外掛,可以讓你非常高效地開發,通過官方網站 code.visualstudio.com/ 下載使用。

第二款是老牌 IDE 公司 JetBrains 推出的 Goland,所有外掛已經全部整合,更容易上手,並且功能強大,新手老手都適合,你可以通過官方網站 www.jetbrains.com/go/ 下載使用。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
?

相關文章