ubuntuにgo言語開発環境をインストールする

周囲

VirtualBox
Ubuntu 18.04

golangをインストールする

システムパッケージ管理ツールを使用してgolangをインストールすると、最新バージョンでなくても通常の使用には影響がありません。

$ sudo apt-get install golang

インストールが完了したら、go versionコマンドを使用してバージョンを表示します

$ go version

ここに画像を挿入

ワークスペースを作成

ワークスペースを作成

Goコードはワークスペースに配置する必要があります。これは実際には、3つのサブディレクトリを含むディレクトリです。

  • 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 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コマンドとテストパッケージで構成されています。

名前が_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.プログラムを変更するたびに、一時命令を再インストールして一時命令を更新する必要があります。それ以外の場合は、以前の実行可能ファイルを実行します

おすすめ

転載: blog.csdn.net/weixin_43980838/article/details/108694987