ubuntu下安裝go語言開發環境
- 環境
- 安裝golang
- 創建作業空間
- 創建作業空間
- 配置GOPATH環境變數
- 創建包路徑
- 創建Hello World!
- 安裝必要工具和插件
- 安裝git
- 下載原始碼
- 安裝工具包
- 安裝go tour
- 我的第一個包與測驗
- 你的第一個庫
- 測驗
- 問題小結
環境
VirtualBox
Ubuntu 18.04
安裝golang
使用系統包管理工具安裝golang,這樣的好處是即使不是最新版本,也不影響正常使用
$ sudo apt-get install golang
安裝完成后使用go version命令查看版本
$ go version

創建作業空間
創建作業空間
Go代碼必須放在作業空間內,它其實就是一個目錄,其中包含三個子目錄:
- src 目錄包含Go的源檔案,它們被組織成包(每個目錄都對應一個包),
- pkg 目錄包含包物件,
- bin 目錄包含可執行命令
使用mkdir命令創建作業空間
$ mkdir $HOME/go
配置GOPATH環境變數
GOPATH環境變數指明了你作業空間的位置(注意這個位置不能與你go安裝目錄相同)
$ export GOPATH=$HOME/go
將此作業空間的 bin 子目錄添加到你的 PATH 中
$ export PATH=$PATH:$GOPATH/bin
然后執行配置
$ source $HOME/.profile
配置成功后可以用 go env檢查配置
$ go env

創建包路徑
在作業空間里創建一個檔案夾來存放你的源檔案
$ mkdir -p $GOPATH/src/github.com/user
創建Hello World!
先選擇包路徑,然后在對應檔案夾里創建檔案
$ mkdir $GOPATH/src/github.com/user/hello
在hello目錄中創建hello.go的檔案
hello.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}
然后進入hello目錄運行檔案
$ go run hello.go

安裝必要工具和插件
安裝git
$ sudo apt-get install git
下載原始碼
# 創建檔案夾(該命令要加-p,因為檔案目錄還不存在)
$ mkdir -p $GOPATH/src/golang.org/x/
# 下載原始碼
$ go get -d github.com/golang/tools
# copy
$ cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
安裝工具包
$ go install golang.org/x/tools/go/buildutil
安裝并運行hello程式
$ go install github.com/user/hello
這條命令會創建一個名為hello的可執行二進制檔案,并安裝到作業空間的bin檔案下,并且會構建一條hello命令

注意:當你更改你的檔案后必須重新構建你的程式,否則可執行二進制還是之前的檔案,檔案執行結果不會改變
安裝go tour
$ go get github.com/Go-zh/tour/gotour
$ gotour

我的第一個包與測驗
你的第一個庫
撰寫一個屬于你自己的庫,并讓hello程式來使用它
選擇包路徑并創建目錄
$ mkdir $GOPATH/src/github.com/user/stringutil
在目錄中創建reverse.go檔案
// stringutil 包含有用于處理字串的工具函式,
package stringutil
// Reverse 將其實參字串以符文為單位左右反轉,
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
用go build命令構建檔案
$ go build github.com/user/stringutil
修改之前的hello程式,使用剛才建立的庫
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
用go install重新安裝hello檔案
$ go install github.com/user/hello

測驗
Go擁有一個輕量級的測驗框架,它由 go test 命令和 testing 包構成,
你可以通過創建一個名字以 _test.go 結尾的,包含名為 TestXXX 且簽名為 func (t *testing.T) 函式的檔案來撰寫測驗, 測驗框架會運行每一個這樣的函式;若該函式呼叫了像 t.Error 或 t.Fail 這樣表示失敗的函式,此測驗即表示失敗,
我們可通過創建檔案 $GOPATH/src/github.com/user/stringutil/reverse_test.go 來為 stringutil 添加測驗
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世 ,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
使用go test測驗
$ go test github.com/user/stringutil

問題小結
1.在創建作業空間和目錄檔案時注意路徑的正確性,如果創建檔案時路徑不存在要加上-p引數
2.每次修改程式時要重新go install后,構建的臨時指令才會更新,否則仍然運行之前的可執行檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/97139.html
標籤:其他
上一篇:位元幣虛擬幣爆富神話!
下一篇:Ubuntu安裝go語言開發環境
