Go で `:=` を使用せずに、異なる型の複数の変数を 1 行で宣言できますか?

Patricia Arquette
リリース: 2024-11-02 18:18:29
オリジナル
1084 人が閲覧しました

Can You Declare Multiple Variables of Different Types in One Line in Go Without Using `:=`?

Go で異なる型の複数の変数を 1 行で宣言する

はじめに
Go では、複数の変数が宣言されている状況によく遭遇します。異なる型の変数を宣言して初期化する必要があります。この質問では、短い変数宣言構文 (:=) に頼らずに、これを 1 行で実行する可能性を検討します。

短い変数宣言構文
短い変数宣言構文Go 1 で導入された (:=) を使用すると、変数の宣言と初期化を 1 行で簡潔に行うことができます。便利ではありますが、変数の型を明示的に指定できないなどの制限があります。

異なる型の変数の宣言
short 変数を使用せずに、異なる型の変数を 1 行で宣言する宣言構文は確かに Go で可能です。これを実現するには、宣言時に型を省略し、割り当てられた値から推測することができます。例:

<code class="go">var i, s = 2, "hi"</code>
ログイン後にコピー

この例では、変数 i と s は型を指定せずに宣言されています。コンパイラは、割り当てられた値 (それぞれ整数と文字列) に基づいて型を推論します。

暗黙の変数の型
型を省略することが実装の近道であることに注意することが重要です。構文:

<code class="go">var i, s = int(2), string("hi")</code>
ログイン後にコピー

したがって、コンパイラは割り当てられた値に基づいて変数の型を内部的に推論します。

制限事項
このアプローチでは複数の宣言が可能です。異なる型の変数を 1 行に含めるには制限があります。特に、複雑な値を割り当てたり、型変換を使用したりする場合は、さらに面倒になります。

代替
変数の型を明示的に指定することが重要な場合は、変数を個別に宣言することをお勧めします。

<code class="go">var i int = 2
var s string = "hi"</code>
ログイン後にコピー

結論
Go では、短い変数宣言構文を使用せずに、型と型を省略することで、異なる型の複数の変数を 1 行で宣言できます。コンパイラがそれらを推論できるようにします。ただし、このアプローチは、特に明示的な型指定が必要な場合には必ずしも適切であるとは限りません。

以上がGo で `:=` を使用せずに、異なる型の複数の変数を 1 行で宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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