if文と初期化式
任意の初期化文を伴う条件分岐
「if文と初期化式」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
Goのif
Goのif文はブール式を評価します。括弧は不要ですが、波括弧は必須です。
if x > 0 {
// positive
}elseとelse if
else ifで条件を連結し、elseでそれ以外の場合を処理します。
func classify(n int) string {
if n < 0 {
return "negative"
} else if n == 0 {
return "zero"
} else {
return "positive"
}
}初期化文付きのif
Goでは、条件の前に任意の初期化文を置けます。一時的な変数のスコープを限定するのに最適です。
if err := doSomething(); err != nil {
// err is only in scope here
return err
}初期化文によるスコープ
初期化文で宣言した変数のスコープは、if/elseブロック内に限定されます。これにより、変数が周囲の関数に漏れ出すのを防げます。
func process(id int) error {
if val, err := lookup(id); err != nil {
return err
} else {
use(val) // val is in scope here
}
return nil
}ブール式
Goの条件にはboolが必要で、暗黙的な変換は行われません。
- 有効:
if count != 0 - 無効:
if count— CやJavaScriptとは異なり、Goではコンパイルエラーになります - これにより、よくあるオフバイワンエラーやnil参照のバグを防げます
nilチェック
== nilを使って、nilポインター、スライス、マップ、エラーをチェックします。
func greet(name *string) string {
if name == nil {
return "Hello, stranger"
}
return "Hello, " + *name
}早期リターンパターン
Goでは、ネストを減らすために早期リターンが強く推奨されます(「ハッピーパス」を左端のインデントに保てます)。
func save(user User) error {
if user.Name == "" {
return errors.New("name required")
}
if user.Age < 0 {
return errors.New("invalid age")
}
return db.Insert(user)
}条件の組み合わせ
&&と||を使って条件を組み合わせます。短絡評価が適用されるため、右辺は必要な場合にのみ評価されます。
if user != nil && user.IsActive() {
sendEmail(user)
}ifとswitchの使い分け
同じ変数に対して多くの条件を調べる場合は、通常switchのほうが読みやすくなります。次のような場合はifを使用します。
- 条件が独立したブール式である
- エラーチェックを伴う初期化文が必要である
- 分岐が1~2個しかない
if-elseのピラミッドを避ける
深くネストしたif-elseブロックは、コードを読みにくくします。次の方法で改善してください。
- 早期リターンを使う
- 複数のケースには
switch文を使う - ロジックを小さな関数に分割する
- 関数の先頭にガード節を置く
クイックチェック
Cと比較したとき、Goのif文にはどのような特徴がありますか?
まとめ:if文
Goのif文は強力で簡潔です。
- 条件を括弧で囲みません。波括弧は必須です
- 初期化文の変数はif/elseブロック内だけで有効です
- 条件は厳密に
boolでなければなりません - 深いネストよりも早期リターンを優先します
- 短絡評価を伴う
&&/||を使用します
次は、汎用的なGoのforループです。
AI チューターと学ぶ Go — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 51
- レッスン
- 203
よくある質問
「if文と初期化式」レッスンは無料ですか?
はい。「if文と初期化式」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「if文と初期化式」で何を学びますか?
任意の初期化文を伴う条件分岐 ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「if文と初期化式」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。