ホームページ > バックエンド開発 > Golang > GOの変数をどのように宣言し、初期化しますか?

GOの変数をどのように宣言し、初期化しますか?

James Robert Taylor
リリース: 2025-03-19 12:10:27
オリジナル
467 人が閲覧しました

GOの変数をどのように宣言し、初期化しますか?

GOでは、いくつかの方法を使用して変数を宣言して初期化できます。変数を宣言する最も一般的な方法は、 varキーワードを使用することです。これがあなたがそれを行う方法です:

 <code class="go">var name string // Declaration without initialization var age int = 25 // Declaration with initialization</code>
ログイン後にコピー

また、単一の行で同じタイプの複数の変数を宣言および初期化することもできます。

 <code class="go">var firstname, lastname string = "John", "Doe"</code>
ログイン後にコピー

GOでは、次の:= operatorを使用して短い変数宣言を使用することもできます。これは、タイプを推進し、関数内でのみ有効です。

 <code class="go">name := "Alice" // Short declaration and initialization, equivalent to var name string = "Alice"</code>
ログイン後にコピー

括弧付きのvarキーワードを使用して、複数の宣言をグループ化することもできます。

 <code class="go">var ( name string = "Bob" age int = 30 )</code>
ログイン後にコピー

GOでは、プログラムが開始されたときに初期化されるパッケージレベル(関数以外)で変数を宣言することもできます。

 <code class="go">var globalVariable string = "Global" func main() { // Access globalVariable here }</code>
ログイン後にコピー

GOの変数に値を割り当てるさまざまな方法は何ですか?

GOでは、値はいくつかの方法で変数に割り当てることができます。

  1. 直接割り当て:これは、宣言された後に変数に値を割り当てる最も簡単な方法です。

     <code class="go">var name string name = "John"</code>
    ログイン後にコピー
  2. 複数の割り当て:GOは、単一のステートメントで複数の値を複数の変数に割り当てることをサポートします。

     <code class="go">var firstname, lastname string firstname, lastname = "John", "Doe"</code>
    ログイン後にコピー
  3. 短い変数宣言と割り当て:この方法では、次の方法を使用します:=演算子は、1つのステップで変数に値を宣言および割り当て、関数内でのみ有効です。

     <code class="go">name := "Alice"</code>
    ログイン後にコピー
  4. 関数または式の使用:変数は、関数または式によって返される値を割り当てることができます。

     <code class="go">length := len("Hello, World!")</code>
    ログイン後にコピー
  5. タプルの割り当て:GOを使用すると、関数呼び出しの結果または値のセットを複数の変数に一度に割り当てることができます。

     <code class="go">a, b := 1, 2 a, b = b, a // Swapping values</code>
    ログイン後にコピー

変数を宣言するとき、GOはどのようにタイプの推論を処理しますか?

GOはタイプの推論を提供します。これにより、コンパイラは割り当てられた値に基づいて変数のタイプを自動的に決定できます。これは、短い変数宣言構文( := )を使用する場合に特に役立ちます。

:=演算子を使用して変数を宣言して初期化する場合、割り当ての右側からタイプを移動します。例えば:

 <code class="go">name := "Alice" // The type of 'name' is inferred to be string age := 25 // The type of 'age' is inferred to be int</code>
ログイン後にコピー

タイプ推論は、複合リテラルと複雑な式でも動作します。

 <code class="go">numbers := []int{1, 2, 3} // The type of 'numbers' is inferred to be []int (slice of ints) sum := 10 20 // The type of 'sum' is inferred to be int</code>
ログイン後にコピー

ただし、タイプの推論は、次のように関数内でのみ機能します:= operator。 varキーワードを使用する場合、初期化値を提供しない場合は、タイプを明示的に宣言する必要があります。

 <code class="go">var name string // Explicit type declaration var age = 25 // Type is inferred to be int</code>
ログイン後にコピー

GOの変数の範囲はどのくらいで、どのように管理されていますか?

Goでは、変数の範囲が変数にアクセスできるコードの部分を決定します。 GOには3つの主要なスコープがあります。

  1. パッケージスコープvarキーワードを使用して機能の外部で宣言された変数には、パッケージスコープがあります。これらの変数は、同じパッケージ内の任意のファイルからアクセス可能で、プログラムが開始されたときに初期化されます。

     <code class="go">package main var globalVariable string = "Global" func main() { fmt.Println(globalVariable) // Accessible within the package }</code>
    ログイン後にコピー
  2. 関数範囲varキーワードまたは短い変数宣言( := )を使用して関数内で宣言された変数には関数範囲があります。これらの変数は、宣言されている関数内でのみアクセスできます。

     <code class="go">func main() { localVar := "Local" fmt.Println(localVar) // Accessible within the function }</code>
    ログイン後にコピー
  3. ブロックスコープ:ブロック内で宣言された変数( iffor 、またはswitchステートメントなど)にはブロックスコープがあります。これらの変数は、そのブロック内でのみアクセスできます。

     <code class="go">if true { blockVar := "Block" fmt.Println(blockVar) // Accessible within the if block } // blockVar is not accessible here</code>
    ログイン後にコピー

GOは、定義された範囲外の変数へのアクセスを防ぐルールを強制することにより、変数の範囲を管理します。これにより、コードの整合性と明確さを維持し、意図しない可変アクセスと変更を防ぐのに役立ちます。

以上がGOの変数をどのように宣言し、初期化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート