ubuntu18.04インストール言語開発環境

1つは、golangをインストールする

最初に、システム
ここに画像の説明を挿入
にgoのバージョンがある
ここに画像の説明を挿入
かどうか確認します。goのバージョンがない場合は、システムパッケージからインストールして、インストールが成功したかどうか確認します
ここに画像の説明を挿入

(後でvscodeで使用されます。システムライブラリを介してsudo apt-getインストールコードをインストールすることもできるため、ここでは繰り返しません)

2、作業ディレクトリを作成する

ホームディレクトリの下に新しいディレクトリgopath(名前は任意)を作成し、このディレクトリの下に3つのサブディレクトリを作成します。

  • src-その中の各サブディレクトリはパッケージです。パッケージの中にGoソースコードファイルがあります

  • pkg-コンパイル後に生成されたパッケージのオブジェクトファイル

  • bin-生成された実行可能ファイル。

ここに画像の説明を挿入

3、環境変数を設定する

ホームディレクトリの.bashrcファイルを編集し、最後に次のコンテンツを追加します。
(home / xumy /はホームディレクトリです)上記の構成を有効にするために
ここに画像の説明を挿入
実行source ~/.bashrcします。

実行go envして、上記の構成が有効かどうかを確認します。
ここに画像の説明を挿入

4番目に、最初のgo言語プログラムhello.goを記述します

https://go-zh.org/doc/code.htmlを参照してください

ソースファイルは作業ディレクトリのsrcフォルダーに配置する必要があります。以下で独自のパッケージパスを作成できます。ここでは、例としてgithub.com/github-user/helloを使用します。これはC ++のプロジェクトファイルと同等で、すべてプロジェクトに関連していますコードはここに配置できます。

パッケージパスを作成します。

mkdir $GOPATH/src/github.com/github-user/hello -p

このディレクトリにhello.goという名前のファイルを作成します。ファイルの内容は次のとおりです。

package main
import "fmt"

func main() {
    
    
	fmt.Printf("hello, world\n")
}

5、いくつかのgoツールをインストールする

vscodeで.goファイルを開くと、一部の拡張機能をインストールするように求められますが、[インストール]をクリックすると失敗します。失敗の理由は、golang.org Webサイトが壁に囲まれているため、golang.org / x / toolsディレクトリをプルすることになりますコンテンツが失敗しました。
ここに画像の説明を挿入
手動インストール
https://github.com/northbright/Notes/blob/master/Golang/china/get-golang-packages-on-golang-org-in-china.mdを参照

まず、$ GOPATHディレクトリの下にサブディレクトリを作成します。

mkdir -p $GOPATH/src/golang.org/x/

パラメータ-pの機能は、パスが存在しない場合にディレクトリを作成することです。

次に、githubミラーのtoolsディレクトリのソースコードをダウンロードします。

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を閉じて再度開きます。プロンプトに従ってインストールすると、結果が表示さ
ここに画像の説明を挿入
れます。これで完了です。

6、最初のプログラムを実行する

実施した go install github.com/github-user/hello

このコマンドは、helloコマンドをビルドし、実行可能なバイナリファイルを生成します。次に、バイナリファイルをhello(Windowsではhello.exe)としてワークスペースのbinディレクトリにインストールします。この例では、$ GOPATH / bin / hello、具体的には$ HOME / go / bin / helloです。

このコマンドは任意のパスで実行できることに注意してください。goツールは、GOPATHで指定されたワークスペースに従ってgithub.com/user/helloパッケージでソースコードを検索します。

これで、コマンドラインにフルパスを入力して実行できます。
$GOPATH/bin/hello
$ GOPATH / binがPATHに追加されている場合は、バイナリファイル名を入力するだけです。
hello

ここに画像の説明を挿入

この時点で、goのインストールプロセスは終了しています。以下にいくつかの拡張機能を示します。

7、インストールしてツアーを実行

詳細スタンプhttps://github.com/Go-zh/tour
。次のようにgithubのダウンロードが遅すぎるので、あなたがツアーディレクトリ内のみをgotourインストールすることができた結果は以下のとおりです。
ここに画像の説明を挿入

8.初めてのライブラリとテスト

(詳細なスタンプhttps://go-zh.org/doc/code.html

  • ねらい

ライブラリを作成し、hello.goにこのライブラリで定義されたメソッドを使用させる必要があります。

  • ライブラリディレクトリの作成とライブラリコンテンツの書き込み

プログラムの作成と同様に、最初のステップは、ライブラリーのパッケージパスを作成することです。
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/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"))
}

最後に、helloプログラムの再インストール後に実行できます(goは、stringutilを含め、helloプログラムが依存するすべてのものを自動的にインストールします)。
ここに画像の説明を挿入

  • テスト

Goには軽量のテストフレームワークがあります。名前が_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 github.com/github-user/stringutilコマンドを使用してテストを実行します
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43867940/article/details/108558661