上一节,我们了解Go语言特性以及第一个Go语言程序——Hello World,这一节就让我们更深入的了解一下Go语言的**基础语法**吧!
1. 行区切り文字
Go プログラムでは、行はステートメントの終わりを表します。この作業は Go コンパイラーによって自動的に行われるため、C ファミリの他の言語のように、各ステートメントをセミコロンで終了する必要はありません。
同じ行に複数のステートメントを記述しないことをお勧めします。同じ行に複数のステートメントがある場合は、セミコロンで区切る必要があります。
2. キーワード
プログラムは通常、キーワード、定数、変数、演算子、型、関数で構成されます。
フォーマットされた出力:
3. ネーミング
関数名、変数名、定数名、型名、ステートメントラベル、パッケージ名など、Go 言語でのすべての命名は、単純な命名規則に従います。Go 言語の変数名は、文字、数字、アンダースコアで構成されます。最初の文字 数字は使用できません。大文字と小文字は異なります。
4. 声明
1. Go 言語の四种类型
主な:
- 変数変数
- 定数
- タイプタイプ
- func関数エンティティオブジェクトの宣言
2.申告命令
Go 言語で書かれたプログラムは、ファイル接尾辞.goを持つ 1 つ以上のソース ファイルに対応します。各ソース ファイルは、ソース ファイルがどのパッケージに属しているかを示すパッケージ宣言ステートメントで始まります。パッケージ宣言ステートメントの後には、他の依存パッケージをインポートするインポートステートメントがあります。次に、パッケージ レベルでの型、変数、定数、および関数の宣言ステートメントがあります。パッケージ レベルでのさまざまな型の宣言ステートメントの順序は重要ではありません (注釈: 関数内の名前は、関数内の名前を宣言する前に最初に宣言する必要があります)に使える)。
5. 変数
変数を宣言する一般的な形式は、varキーワードを使用することです。
(1) var は、特定の型の変数を作成し、その変数に名前を付けて、変数の初期値を設定できます。変数宣言の一般的な構文は次のとおりです。
var 変数名 type = 式
「型」または「= 式」の 2 つの部分のうち、1 つは省略できます。
- 型情報を省略した場合、変数の型情報は初期化式から推定されます。
- 初期化式を省略した場合、変数は値 0 で初期化されます。
- 数値型変数に対応するゼロ値は 0 です。
- ブール型変数に対応するゼロ値は false です。
- 文字列型に対応するゼロ値は空の文字列です。
- インターフェイスまたは参照型 (スライス、マップ、チャネル、関数を含む) の変数に対応するゼロ値は nil です。
- 配列や構造体などの集計タイプに対応するゼロ値とは、各要素またはフィールドがそのタイプに対応するゼロ値を持つことを意味します。
零值初始化机制可以确保每个声明的变量总是有一个良好定义的值,因此在Go语言中不存在 未初始化的变量。
(2) var は、一度に複数の変数を宣言または初期化することもできます。
var i, j, k int // int, int, int
var b, f, s = true, 2.3, "four" // bool, float64, string
初始化表达式可以是字面量或任意的表达式。
(3) 関数とその関数によって返される複数の戻り値を呼び出して変数のセットを初期化することもできます。
var f, err = os.Open(name) // os.Open はファイルとエラーを返します
在包级别声明的变量会在main入口函数执行前完成初始化,局部变量将在声明语句被执行到的时候完成初始化。
(4):=
代入演算子を使用した短い変数宣言
関数内では、短い変数宣言文と呼ばれる形式を使用して、ローカル変数の宣言と初期化を行うことができ、変数の型は式に基づいて自動的に推定されます。
- 短い変数初期化構文:
変数名:=式
(注: 関数本体内でのみ使用でき、グローバル変数の宣言や代入には使用できません)
したがって、これらを a := 50 または b := false と省略できます。
a と b の型 (int と bool) は、コンパイラによって自動的に推論されます。
- var 宣言ステートメントと同様に、短い変数宣言ステートメントを使用して変数セットを宣言および初期化することもできます。
i, j := 0, 1 //int int
ただし、複数の変数を同時に宣言するこの方法は、for ステートメント ループの初期化ステートメント部分など、コードの可読性を向上できる場所に限定する必要があります。
- var 形式の通常の変数宣言ステートメントと同様に、短い変数宣言ステートメントでも関数の戻り値を使用して変数を宣言および初期化できます。次の os.Open 関数呼び出しは 2 つの値を返します。
f、エラー := os.Open(名前)
エラーの場合 != nil {
エラーを返す
} // ...使用...
f.Close()
注: 同じコード ブロック内で同じ名前の変数の初期化ステートメントを再度使用できない場合、たとえば、:= 20 は許可されず、コンパイラは、:= の左側に新しい変数がありませんというエラーを表示します。ただし、a = 20 は同じ変数に新しい値を与えるので問題ありません。
変数 a を定義する前に使用すると、コンパイル エラーが発生します:
ローカル変数を宣言しても、それを同じコード ブロック内で使用しない場合にも、コンパイル エラーが発生します。
6. 定数
定数は、プログラムの実行中に変更されない単純な値の識別子です。定数の定義形式は次のとおりです。
const 変数名[型] = 式
//コンパイラは変数の値に基づいて変数の型を推測できるため、型指定子 [type] は省略できます。
- 定数式の値は、実行時ではなくコンパイル時に評価されます。
- 定数のデータ型は、ブール値、数値 (整数、浮動小数点、複素数)、および文字列のみです。
- 変数宣言と同様に、複数の定数をバッチで宣言できます。
- 定数を使用すると、len()、cap()、および unsafe.Sizeof() 関数を使用して式の値を計算できます。定数式では、関数は組み込み関数である必要があります。そうでない場合はコンパイルされません。
7. 条件文
条件付きステートメントでは、開発者は 1 つ以上の条件を指定する必要があります。条件が true の場合はステートメント 1 が実行され、条件が false の場合はステートメント 2 が実行されます。
8. ループステートメント