技術共有

Go言語入門 (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Go モジュールはパッケージ検索メカニズムに依存します
  • ダウンロードされたサードパーティの依存関係は次の場所に保存されます。 $GOPATH/pkg/mod
  • go install で生成された実行可能ファイルは次の場所に保存されます。 $GOPATH/bin
  • 検索順序によって異なります。
    • 作品リスト
    • $GOPATH/pkg/mod
    • $GOPATH/ソース

1. Go言語の基礎

1.識別子とキーワード

1.1 命名方法

go 変数、定数、カスタム型、パッケージ、関数の命名は、次の規則に従う必要があります。

最初の文字は次のとおりです任意Unicode字符または下划线

最初の文字以外の部分には、Unicode 文字、アンダースコア、または数字を使用できます

名前の長さに制限はありません

理論的には、名前に漢字を含めることも、すべて漢字を含めることもできますが、実際にはそうしないでください。

1.2 キーワード
壊すデフォルト機能インターフェース選択する
場合延期する行く地図構造体
ちゃんそれ以外行くパッケージスイッチ
定数もし範囲タイプ続く
のために輸入戻るフォールスルーvar
1.3 予約語

•絶え間ない

true false iota nil

•データの種類

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•関数

make len cap new append copy

close delete complex real imag panic recover

1.4 変数
1.4.1 変数の型
タイプGo 変数の型fmt出力
整数int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%d
浮動小数点float32 float64%f %e %g
複数complex128 complex64%v
ブール値bool%t
ポインタuintptr%d
引用map slice channel%v
バイトbyte%d
任意の文字rune%d
string%s
間違いerror%v
1.4.2 変数の初期化
  • 宣言後に明示的に初期化されない場合、数値型は O に初期化され、文字列型は空の文字列に初期化され、ブール型は false に初期化されます。

    参照型、関数、ポインタ、インターフェイスは nil に初期化されます。

    • var 文字列 = “中国”
    • var a,b int=3,7
    • var a="china"、型推論
    • var a,b = “中国”, 7
  • 関数内の変数 (非グローバル変数) は、次の方法で宣言および初期化できます。 =

    • :=3 です
  • アンダースコアは匿名変数を示します

    • _=2+4
  • 匿名変数は名前空間を占有せず、メモリも割り当てないため、再利用できます。

1.5 定数

定数は定義時に値を割り当てる必要があり、プログラムの実行中にその値を変更することはできません。

const PI float32=3.14

const(
	PI=3.14
	E=2.71
)

const(
  a=100
  b	//100,跟上一行的值相同
  c	//100,跟上一行的值相同
)

const(
	a = iota	//0
  b					//1
  c					//2
  d					//3
)

const(
	a = iota	//0
  b					//1
  _					//2
  d					//3
)

const(
	a = iota	//0
  b	= 30		//30
  c	= iota	//2
  d					//3
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
1.6 リテラル

リテラル: 変数名は表示されませんが、値が直接表示されます。基本型のリテラルは定数と同等です

リテラルを除き、異なるデータ型を比較す​​ることはできません

fmt.Printf("9tn"04 ==4.00//用到了整型字面量和浮点型字面量
fmt.Printf("%vn".4i//虚数字面量0.4i
fmt.Printf("%tn", "u4f17'=='//Unicode和rune字面量
fmt.Printf("Hello nWorldn!n"//字符串字面量
  • 1
  • 2
  • 3
  • 4
1.7 変数のスコープ
グローバル変数
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
ローカル変数
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 コメントとgodoc
1.8.1 コメントの形式
  • 一行コメント。皮切りに //
  • 複数行のコメント。連続する複数行は // で始まるか、段落の前に /* を使用し、段落の最後に */ を使用します。
  • 複数行のコメントの間に空行を含めることはできません
  • 注: 注意を引くため、TODO: 将来最適化が必要です、非推奨: 変数や関数を使用しないことを強くお勧めします。
  • コメント行の前にインデントを追加することで go コードを書くことができます。
1.8.2 コメントの位置
  • パッケージのコメント。パッケージxxxの上。パッケージは、パッケージ コメントを 1 か所 (通常は専用の doc.go) に記述するだけで済みます。

    packagexxx とパッケージに関するコメントが 1 行だけあります。

  • 構造のコメント。上記のタイプ xxx 構造体

  • 関数のコメント。上記の関数 xxx()

  • ラインコメント。行の上または右

1.8.3 ドキュメント
  • go doc は go に付属のコマンドです
  • go doc エントリークラス/ユーティリティ
1.8.4 ゴドック
  • godoc は、プロジェクト コードのアノテーション ドキュメントの Web バージョンをエクスポートできます。
    • まず go をインストールして golang.org/x/tools/cmd/godoc を取得する必要があります
    • http:godoc -http=:6060 を開始します
    • ブラウザを使用して、http://127.0.0.1:6060/pkg/go-course/entrance class にアクセスします。