安裝Go語言開發環境 & 使用Go編程

目錄

 

安裝Go語言開發環境

安裝VSCode編輯器

安裝golang

安裝

設置環境變量

創建Hello world

安裝必要的工具和插件

安裝Git客戶端

安裝Go的一些工具

安裝與運行gotour

使用Go編程

用Go工具構建、安裝並運行之前創建的Hello world

編寫一個庫

測試

遠程包

實驗代碼

參考


安裝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.Errort.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

 

實驗代碼

 

參考

安裝 go 語言開發環境

Golang 解決 golang.org/x/ 下包下載不下來的問題

如何使用Go編程

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章