Goで変数を宣言する
var、:=、型推論
「Goで変数を宣言する」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
変数とは何ですか
変数は、値を格納する名前付きの記憶領域です。Goでは、すべての変数にコンパイル時に固定される型があります。
- Goは静的型付けです — 実行時に型を変更できません
- 変数には、明示的に設定しない場合でも必ずデフォルトのゼロ値があります
- わかりやすい命名が重要です。Goでは長い名前よりも短く明確な名前が好まれます
var宣言
varキーワードを使うと、1つ以上の変数を明示的に宣言できます。
package main
func main() {
var name string
var age int
var pi float64 = 3.14
_ = name
_ = age
_ = pi
}短縮変数宣言 :=
関数内では、:=を使って宣言と代入を1つの手順で簡潔に記述できます。
- 型は右辺から推論されます
:=は関数本体の内部でのみ使用できます- 左辺の変数のうち、少なくとも1つは新しい変数である必要があります
package main
func main() {
city := "Ankara" // string inferred
count := 42 // int inferred
temp := 36.6 // float64 inferred
_ = city
_ = count
_ = temp
}ゼロ値
Goでは、宣言されたすべての変数が自動的にゼロ値で初期化されます。
int、float64→0string→""(空文字列)bool→false- ポインタ、スライス、マップ、チャネル →
nil
ゼロ値により、C/C++でよくある未初期化変数によるバグを防げます。
複数変数の宣言
ブロック形式またはタプル形式を使うと、複数の変数を一度に宣言して代入できます。
package main
var (
host = "localhost"
port = 8080
debug = false
)
func main() {
x, y := 10, 20
_ = x
_ = y
}型推論のルール
:=を使うと、Goはリテラルから型を推論します。
- 整数リテラル →
int - 浮動小数点リテラル →
float64 - 文字列リテラル →
string - 複素数リテラル →
complex128
特定の型(例:int32)が必要な場合は、明示的なvar宣言または変換を使用します。
パッケージレベルと関数レベルの変数
変数はパッケージレベル(パッケージ全体から参照可能)または関数レベル(関数内だけで有効)に置くことができます。
- パッケージレベル:
varを使用し、パッケージ内のどこからでもアクセスできます - 関数レベル:
:=またはvarを使用し、関数内でのみ参照できます - 状態を局所化するため、関数レベルの変数を優先してください
ブランク識別子 _
ブランク識別子_を使うと、不要な値を破棄できます。Goでは、宣言したすべての変数を使用する必要があります。_はそのための例外的な手段です。
package main
func divide(a, b int) (int, int) {
return a / b, a % b
}
func main() {
quotient, _ := divide(10, 3) // discard remainder
_ = quotient
}変数のシャドーイング
シャドーイングは、内側のスコープで外側のスコープと同じ名前の変数を宣言したときに発生します。
- 内側の変数によって、そのスコープ内では外側の変数が隠されます
- 意図しない微妙なバグの原因になるため、意図して使用してください
go vetやstaticcheckなどのリンターを使って、意図しないシャドーイングを検出できます
:=でよくある間違い
次の:=の落とし穴に注意してください。
- パッケージレベルで
:=を使う → コンパイルエラーになります - 左辺のすべての変数がすでに存在する → 代わりに
=を使います - if-errブロックで外側のエラー変数を誤ってシャドーイングする
迷った場合は、わかりやすさを優先して明示的なvarを使用してください。
クイックチェック
次のうち、Goで正しい短縮変数宣言の構文はどれですか。
復習:変数の宣言
これで、Goで変数を宣言する方法がわかりました。
var name type— ゼロ値を持つ明示的な宣言var name = value— 型推論を使うvar宣言name := value— 関数内で使う短縮宣言- ゼロ値は自動的に設定されるため、未初期化状態はありません
_で不要な値を破棄できます
次は、Goの組み込み型とそのゼロ値について詳しく学びます。
練習課題
自分で試してみましょう。string型のパッケージレベル変数appNameと、:=を使って3を代入する関数レベル変数retriesを宣言してください。
覚えておきましょう。パッケージレベルの変数にはvarを使い、:=は関数本体の内部でのみ有効です。
よくある質問
「Goで変数を宣言する」レッスンは無料ですか?
はい。「Goで変数を宣言する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「Goで変数を宣言する」で何を学びますか?
var、:=、型推論 ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Goで変数を宣言する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。