UbuntuでのGo言語開発環境のインストール
周囲
VMware 15.0
Ubuntu 18.04
ステップ1のインストール
システムパッケージ管理ツールを使用してインストールします。ここで異常が発生する可能性があります。システムのプロンプトに従ってください。
sudo apt-get install golang
インストールが成功したかどうかをテストし、バージョンを確認します
go version
ステップ2ワークスペースを作成する
Goコードはワークスペースに配置する必要があります。これは実際には、3つのサブディレクトリを含むディレクトリです。
- srcディレクトリには、パッケージに編成されたGoソースファイルが含まれています(各ディレクトリはパッケージに対応しています)。
- pkgディレクトリにはパッケージオブジェクトが含まれています
- binディレクトリには実行可能なコマンドが含まれています
したがって、ワークスペースディレクトリを作成し、それに対応するGOPATHを設定する必要があります。ワークスペースはどこにでも配置できます。ここはホームディレクトリにあります。
kangze@kangze:/$ mkdir $HOME/kangze/gopath
次に、このディレクトリに3つのサブディレクトリsrc pkg binを作成します。
mkdir src pkg bin
手順3で環境変数を設定する
export GOPATH=$HOME/kangze/gopath
export PATH=$PATH:$GOPATH/bin
この構成を実行します。
source ~/.bashrc
構成を確認する
$ go env
ご覧のとおり、GOPATHが変更されています。
ハローワールドを作ろう!
ワークスペースを作成して環境変数を設定したら、通常の練習に従って言語を学習します。通常はHello Worldから始めます。この画期的な作業を完了するには、まずソースコードディレクトリを作成します。
$ mkdir $GOPATH/src/gihub.com/gitee-user/hello -p
vscodeを使用してhello.goを作成します(vscodeはUbuntuアプリケーションセンターでダウンロードできます)
ソースコードディレクトリにhello.goファイルを作成し、その中に次のコードを記述します。
package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}
実行:
$ go run hello.go
必要なプラグインをインストールする
Gitをインストールする
sudo apt-get install git
goをインストールするためのいくつかのツール
ソースコードをローカルにダウンロード
中国のネットワーク環境ではGolang.orgにアクセスできないため、実行とは異なります
go get golang.org/x/tools/...
Golangパッケージを取得します。
したがって、githubのミラーを使用してコードを取得できます。最初にGOPATHディレクトリの下にサブディレクトリを作成します
mkdir -p $GOPATH/src/golang.org/x/
ソースコードをダウンロード
go get -d 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
このコマンドはバイナリファイルを生成し、バイナリファイルをbinディレクトリにインストールします。実行するにはhelloと入力してください。
ゴーツアーをインストールして実行する
https://github.com/Go-zh/tourを参照してください。
go get github.com/Go-zh/tour/gotour
gotour
結果は次のとおりです。
私の最初のパッケージとテスト
ライブラリとそれを使用するプログラムを書くこと。最初にパッケージパスを選択し、パッケージディレクトリを作成します。
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 github.com/github-user/stringutil
stringutilパッケージがビルドされたことを確認したら、元のhello.goファイル($ GOPATH / src / github.com / github-user / helloにあります)を変更して使用します。
package main
import (
"fmt"
"github.com/github-user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
沿って
go install github.com/github-user/hello
stringutilパッケージをインストールするには。
このプログラムの新しいバージョンを実行します。
hello
テスト
Goには軽量のテストフレームワークがあり、go testコマンドとテストパッケージで構成されています。
名前が_test.goで終わり、TestXXXという名前の関数が含まれ、func(t * testing.T)として署名されたファイルを作成して、テストを作成できます。テストフレームワークはこれらの各関数を実行します。関数がt.Errorやt.Failなどの失敗を示す関数を呼び出す場合、テストは失敗を示します。
$ GOPATH / src / github.com / github-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/github-user/stringutil
問題の概要
最初は、ワークスペースを作成するときに、環境変数を構成するときに記述されるパスが1つ少なくなりました。
(错误)export GOPATH=$home/gopath
(正确)export GOPATH=$home/kangze/gopath
後続の操作を失敗させます。