【ヒント】Go言語では短い変数宣言に := を使う方が良い
By khoanc, at: 2024年9月4日13:47
Estimated Reading Time: __READING_TIME__ minutes
![[TIPS] Prefer := for Short Variable Declaration in Go](/media/filer_public_thumbnails/filer_public/f4/7a/f47a91af-4dc2-442b-8df6-387a98cf171f/go-lang_short_variable_declaration.png__1500x900_crop_subsampling-2_upscale.png)
![[TIPS] Prefer := for Short Variable Declaration in Go](/media/filer_public_thumbnails/filer_public/f4/7a/f47a91af-4dc2-442b-8df6-387a98cf171f/go-lang_short_variable_declaration.png__400x240_crop_subsampling-2_upscale.png)
Goの最も便利な機能の1つは、短い変数宣言のための:=
構文です。これにより、1行で変数を宣言して初期化できるため、コードをより簡潔で読みやすくすることができます。ほとんどの場合、この省略記法を優先すべき理由を探っていきましょう。
:=
を使う理由
シンプルさと可読性: :=
構文は、宣言と初期化の両方を1行で組み合わせることで、変数宣言を簡素化します。これにより、定型コードが削減され、新しい変数が導入されていることがすぐに明確になります。
型推論: :=
を使用すると、変数の型を明示的に指定する必要はありません。Goは代入された値に基づいて型を自動的に推論するため、明確さを犠牲にすることなく冗長性を減らすことができます。
count := 42 // countは自動的にint型になります
name := "Go" // nameは自動的にstring型になります
ブロックスコープ: :=
で宣言された変数は、宣言されたブロックのスコープを持ちます。これにより、変数の再利用や意図しないグローバル状態の変更に関連する問題を回避するのに役立ちます。
:=
を使わない場合
この省略記法は強力ですが、避けるべき場合があります。
パッケージレベルの変数: パッケージレベルでは、:=
は関数内でのみ有効なため、var
キーワードを使用して変数を宣言する必要があります。
var globalCount int // パッケージレベルで宣言
値の再代入: 同じスコープ内で既存の変数に値を再代入する場合は、:=
ではなく標準の代入演算子=
を使用してください。
count = 50 // 新しい値を再代入
:=
の動作例
:=
がどのようにコードを効率化できるかを示す簡単な例を以下に示します。
package main
import "fmt"
func main() {
// :=
で複数の変数を宣言して初期化
message := "Hello, Go!"
count := 10
isReady := true
fmt.Println(message, count, isReady)
}
この例では、:=
を使用して異なる型の3つの変数を宣言および初期化することで、コードを簡潔で読みやすくしています。