目錄
安裝Go語言開發環境
安裝VSCode編輯器
按照步驟安裝VSCode編輯器。
安裝golang
安裝
- 使用系統包管理工具安裝:
sudo yum install golang
- 查看安裝目錄 :
rpm -ql golang |more
- 查看安裝版本(測試是否安裝成功):
go version
設置環境變量
- 創建工作空間:
mkdir $HOME/go
- 配置環境變量
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
- 檢查環境配置
go env
創建Hello world
- 退出當前用戶,然後重新登陸
- 創建源代碼目錄
mkdir $GOPATH/src/github.com/github-user/hello -p
- 使用VS Code創建hello.go(需進入圖形界面)
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
- 在終端運行
go run hello.go
安裝必要的工具和插件
安裝Git客戶端
sudo yum install git
安裝Go的一些工具
用VSCode打開.go文件後會提示需要安裝一些工具,但由於無法連接golang.org,部分工具無法安裝。因此我們只能下載源代碼到本地再進行安裝。
- 創建文件夾
mkdir $GOPATH/src/golang.org/x/
- 下載源碼
go get -d github.com/golang/tools
或者
git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
- 複製
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
- 安裝工具包
go install golang.org/x/tools/go/buildutil
- 退出VSCode,再重新進入,按照提示安裝
- 安裝運行Hello world
go install github.com/github-user/hello
如果PATH變量配置正確(可通過env命令查看),則可直接在控制檯輸入hello運行可執行程序,否則需要進入與src同級的bin文件夾,輸入./hello運行可執行程序。
安裝與運行gotour
go get github.com/Go-zh/tour/gotour
之後的步驟與上一步中運行可執行程序的操作相同。
使用Go編程
Go代碼必須放在工作空間內。它其實就是一個目錄,其中包含三個子目錄:
src
目錄包含Go的源文件,它們被組織成包(每個目錄都對應一個包),pkg
目錄包含包對象,bin
目錄包含可執行命令。
用Go工具構建、安裝並運行之前創建的Hello world
- 構建並安裝Hello world
go install github.com/github-user/hello
該命令可以在系統的任何地方運行,若已在包目錄內則可以省略路徑名,則輸入go install即可。
- 運行Hello world
$GOPATH/bin/hello
和之前的情況一樣,當PATH變量配置正確時,可以通過直接輸入hello運行程序。
編寫一個庫
- 選擇包路徑(
github.com/github-user/stringutil
)並創建包目錄
mkdir $GOPATH/src/github.com/github-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)
go build github.com/github-user/stringutil
- 修改之前創建的hello.go
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
- 重新安裝hello程序
go install github.com/github-user/hello
- 再次運行hello程序
測試
Go擁有一個輕量級的測試框架,它由
go test
命令和testing
包構成。你可以通過創建一個名字以
_test.go
結尾的,包含名爲TestXXX
且簽名爲func (t *testing.T)
函數的文件來編寫測試。 測試框架會運行每一個這樣的函數;若該函數調用了像t.Error
或t.Fail
這樣表示失敗的函數,此測試即表示失敗。
- 創建文件
$GOPATH/src/github.com/github-user/stringutil/reverse_test.go
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
工具,只需輸入go test)
go test github.com/user/stringutil
遠程包
像Git或Mercurial這樣的版本控制系統,可根據導入路徑的描述來獲取包源代碼。
go
工具可通過此特性來從遠程代碼庫自動獲取包。若你在包的導入路徑中包含了代碼倉庫的URL,go get
就會自動地獲取、 構建並安裝它。若指定的包不在工作空間中,
go get
就會將會將它放到GOPATH
指定的第一個工作空間內。(若該包已存在,go get
就會跳過遠程獲取, 其行爲與go install
相同)
- 獲取、構建並安裝遠程包
go get github.com/golang/example/hello
- 運行程序
$GOPATH/bin/hello
實驗代碼
參考
Golang 解決 golang.org/x/ 下包下載不下來的問題