【ヒント】Go言語では短い変数宣言に := を使う方が良い
By khoanc, at: 2024年9月4日13:47
Estimated Reading Time: __READING_TIME__ minutes
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つの変数を宣言および初期化することで、コードを簡潔で読みやすくしています。