Go 言語では、const キーワードを使用して、変更されないデータを格納する定数を定義できます。単一の定数を定義する構文は、「const 定数名 = 定数値」です。複数の定数を一括定義する場合の構文は「const(定数名1 = 定数値1 定数名2 = 定数値2...)」となります。定数は、関数内で定義されている場合でもコンパイル時に作成され、型はブール型、数値 (整数、浮動小数点、および複素数)、および文字列のみになります。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
const キーワードは、Go 言語で定数を定義するために使用されます。
定数は、変更されないデータを保存するために使用されます。定数は、関数内で定義されている場合でもコンパイル時に作成され、ブール値、数値 (整数、浮動小数点) ドット タイプのみを使用できます。複数型)と文字列型。コンパイル時の制限により、定数を定義する式は、コンパイラによって評価できる定数式である必要があります。
定数の定義形式は、変数の宣言構文に似ています: const name [type] = value、例:
const pi = 3.14159 // 相当于 math.Pi 的近似值
Go 言語では、型指定子 [type] を省略できます。 ]、コンパイラは値に基づいて変数の型を推測できるためです。
明示的な型定義: const b string = "abc"
暗黙的な型定義: const b = "abc"
定数の値はコンパイル時に決定できなければならず、その代入式には計算プロセスが関与する可能性がありますが、すべて計算された値はコンパイル時に使用できる必要があります。
const c1 = 2/3
const c2 = getNumber() // 引发构建错误: getNumber() 用做值
const ( e = 2.7182818 pi = 3.1415926 )
すべての定数操作はコンパイル時に完了できるため、実行時の作業が軽減されるだけでなく、他のコードのコンパイルと最適化も容易になります。オペランドは定数ですが、整数のゼロ除算、範囲外の文字列インデックス、無効な浮動小数点数をもたらす演算など、一部の実行時エラーはコンパイル時に発見されることもあります。
すべての算術演算、論理演算、および定数間の比較演算の結果も定数です。定数に対する型変換演算または次の関数呼び出しは、定数の結果を返します: len、cap、real、imag、complex、および unsafe 。のサイズ。
値はコンパイル時に決定されるため、定数は型の一部にすることができます。たとえば、配列型の長さを指定するために使用されます。
const IPv4Len = 4 // parseIPv4 解析一个 IPv4 地址 (d.d.d.d). func parseIPv4(s string) IP { var p [IPv4Len]byte // ... }
定数の宣言型と値を含めることもできますが、型が明示的に指定されていない場合、型は右側の式から推測されます。次のコードでは、time.Duration は名前付き型、基になる型は int64、time.Minute は対応する型の定数です。以下で宣言されている 2 つの定数は time.Duration 型であり、型情報は %T パラメーターを通じて出力できます。
const noDelay time.Duration = 0 const timeout = 5 * time.Minute fmt.Printf("%T %[1]v\n", noDelay) // "time.Duration 0" fmt.Printf("%T %[1]v\n", timeout) // "time.Duration 5m0s" fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"
これらがバッチで宣言された定数である場合、最初の定数を除き、初期化式は他の定数の右側は省略可能ですが、初期化式を省略した場合は前の定数の初期化式を使用することを意味し、対応する定数の型も同じです。例:
const ( a = 1 b c = 2 d ) fmt.Println(a, b, c, d) // "1 1 2 2"
[関連する推奨事項:
Go ビデオ チュートリアル、プログラミング教育 ]
以上がGo言語でconstを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。