中山大學數據科學與計算機學院 軟件工程 2017級 服務計算作業,17343050
GitHub 倉庫地址:https://github.com/huanghongxun/hello
警告:本文需要使用 Go 1.13 實現 hello world
安裝 Golang
Ubuntu 18.04 默認的 apt 源中包含的 golang-go 包是 Go 1.10,並不是最新版,因此添加非官方的軟件源 sudo add-apt-repository ppa:knakamur/golang-1.13
以獲得 Go 1.13。
添加了軟件源之後,我們就可以通過命令 sudo apt install golang-go
安裝 Go 1.13 了。
安裝必要的工具和插件
安裝 Git 客戶端
通過命令 sudo apt install git
即可安裝 git 工具。
安裝 Go 相關工具
鑑於國內無法正常連接 Google 的站點 golang.org
,我們使用代理解決:通過添加環境變量 GOPROXY
、all_proxy
使 go get
命令通過我們自己的代理訪問 golang.org
:通過命令 sudo vim /etc/profile.d/goproxy.sh
添加腳本以添加環境變量:
比如我的 http 代理服務器架設於本地的 http://localhost:1080
,那麼通過命令 export GOPROXY=http://localhost:1080
命令即可導出環境變量。然後註銷並重新登錄後環境變量即可生效。
這樣 VSCode 就可以正常安裝 Go 語言的相關工具了。
Hello World
首先通過創建項目文件夾 ~/gowork
mkdir -p ~/gowork
接着我們使用 go mod init github.com/huanghongxun/hello
創建模塊,並創建 ~/gowork/main.go
:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
並使用 go install github.com/huanghongxun/hello
命令編譯並安裝模塊後即可通過 hello
命令調用我們創建的程序:
我們可以通過 which hello
命令查看程序的安裝位置,可以看到被安裝在 $GOPATH/bin
下。
Go Tour
通過命令
go get -u golang.org/x/tour
tour
即可啓動 gotour:
你的第一個庫
爲了創建 stringutil
包,我們在 gowork
文件夾根目錄下創建 stringutil
文件夾,並創建 reverse.go
文件如下:
接着我們便可通過 go build github.com/huanghongxun/hello/stringutil
命令編譯這個庫了。(注意,這種方法必須使用 Go 1.12 及以上版本,並通過 go mod init github.com/huanghongxun/hello
命令來創建根模塊纔可以,否則你必須使用傳統的文件目錄格式。)
最後我們修改 main.go
引用這個庫如下,可以看到終端輸出正常工作,輸出了 Hello, Go!
。
創建測試
通過創建 XXX_test.go
文件來測試 XXX.go
代碼的正確性,go 提供了基本的單元測試框架 testing
幫助我們進行測試。
我們創建 stringutil/reverse_test.go
來測試 reverse.go
的正確性,可以看到 go test github.com/huanghongxun/hello/stringutil
命令正常測試了 reverse.go
的功能,並輸出了測試時間。