Ubuntuはgo言語開発環境をインストールします

周囲

VMware 15.0
Ubuntu 18.04

ステップ1のインストール

システムパッケージ管理ツールを使用してインストールします。ここで異常が発生する可能性があります。システムのプロンプトに従ってください。

sudo apt-get install golang

インストールが成功したかどうかをテストし、バージョンを確認します

go version

バージョン

ステップ2ワークスペースを作成する

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

  1. srcディレクトリには、パッケージに編成されたGoソースファイルが含まれています(各ディレクトリはパッケージに対応しています)。
  2. pkgディレクトリにはパッケージオブジェクトが含まれています
  3. 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をインストールするためのいくつかのツール

参照リンクhttps://github.com/northbright/Notes/blob/master/Golang/china/get-golang-packages-on-golang-org-in-china.md

ソースコードをローカルにダウンロード

中国のネットワーク環境では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

後続の操作を失敗させます。

関連リンク

https://go-zh.org/doc/code.html

おすすめ

転載: blog.csdn.net/weixin_43847600/article/details/108561501