カテゴリ: Go言語 更新日: 2025/11/08

Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法

Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法

先生と生徒の会話形式で理解しよう

生徒

「Go言語では、if文を短く1行で書くことってできるんですか?」

先生

「いい質問ですね。Go言語には、他の言語でよく使われる『三項演算子』はありませんが、似たようなことを1行で書く方法がありますよ。」

生徒

「三項演算子ってなんですか?そして、それがなくても大丈夫なんですか?」

先生

「三項演算子とは、条件 ? 値1 : 値2という形で、条件に応じて値を切り替える書き方です。Go言語ではこの構文は使えませんが、代わりにif文を工夫して、1行で似たような処理を書く方法があります。では、わかりやすく解説していきましょう!」

1. 三項演算子とは?Go言語にはない理由も解説

1. 三項演算子とは?Go言語にはない理由も解説
1. 三項演算子とは?Go言語にはない理由も解説

まずは「三項演算子」とは何かを整理しておきましょう。他のプログラミング言語(C言語・Java・JavaScriptなど)では、条件によって値を分けたい時に、短く書ける特別な記法が用意されています。


let result = (score > 60) ? "合格" : "不合格";

この書き方は「条件が真なら左、偽なら右の値を選ぶ」という意味になります。慣れると読み書きはとても早く、プログラムを短くまとめたい時に便利です。

ところが、Go言語にはこの三項演算子がありません。「便利なのになぜ?」と思うかもしれませんが、そこには理由があります。Goの開発思想には「コードは人が読めることが大切」という考え方があるため、パッと見て意味が分かりにくい書き方を増やさないようにしているのです。

つまり、Go言語はシンプルさと読みやすさを優先しているため、三項演算子をあえて採用していません。その代わり、if文を使って同じ結果を表現できます。書き方は少し違いますが、やれることは同じなので心配はいりません。

2. Go言語で条件式を1行で書くには?代替方法を紹介

2. Go言語で条件式を1行で書くには?代替方法を紹介
2. Go言語で条件式を1行で書くには?代替方法を紹介

Go言語には三項演算子がない代わりに、if文を1行で書くことで似たような処理を実現できます。

例えば、「スコアが60以上なら合格、それ以外は不合格」という条件を実装してみましょう。


var result string
if score >= 60 {
    result = "合格"
} else {
    result = "不合格"
}

このように、通常の書き方では3行以上使いますが、if文の中で代入だけを行うようにすれば、1行で書くことも可能です。


if score >= 60 { result = "合格" } else { result = "不合格" }

このようにすれば、1行で条件を記述できます。ただし、読みやすさを損なわないように注意しましょう。

3. 簡単な実行例で学ぼう!Go言語での条件式1行記法

3. 簡単な実行例で学ぼう!Go言語での条件式1行記法
3. 簡単な実行例で学ぼう!Go言語での条件式1行記法

それでは、実際のGoプログラムで、条件によって値を決める処理を1行で書く例を見てみましょう。


package main

import "fmt"

func main() {
    score := 75
    var result string
    if score >= 60 { result = "合格" } else { result = "不合格" }
    fmt.Println(result)
}

このコードでは、スコアが60以上なら「合格」、それ以外なら「不合格」と表示されます。


合格

4. ifの中で変数を定義する方法(短縮記法)

4. ifの中で変数を定義する方法(短縮記法)
4. ifの中で変数を定義する方法(短縮記法)

Go言語では、if文の中で一時的な変数を定義して使うこともできます。これは「短縮記法」と呼ばれるテクニックです。


if value := getScore(); value >= 60 {
    fmt.Println("合格")
} else {
    fmt.Println("不合格")
}

value := getScore() という形で、ifの条件式の中に変数を定義できます。この変数はifとelseの中でだけ使えるようになります。

この書き方を使えば、わざわざ事前に変数を宣言しなくても済み、スッキリしたコードになります。

5. 1行で書く際の注意点

5. 1行で書く際の注意点
5. 1行で書く際の注意点

Go言語では、条件式を1行で書くことができますが、コードが読みづらくなる場合もあります。

たとえば、処理の内容が長くなったり、条件が複雑になった場合は、無理に1行で書かずに、複数行に分けて書く方が良いです。

1行にまとめられるのは、簡単な条件と簡単な処理の場合に限る、ということを覚えておきましょう。

6. Go言語で使えるその他の条件式の書き方

6. Go言語で使えるその他の条件式の書き方
6. Go言語で使えるその他の条件式の書き方

Go言語では、switch文を使って複数の条件分岐を書くこともできますが、1行記法では主にif-elseを工夫するのが基本です。

次のように、数値の範囲によってメッセージを変える例を見てみましょう。


score := 45
message := ""
if score >= 80 {
    message = "優秀"
} else if score >= 60 {
    message = "合格"
} else {
    message = "再試験"
}
fmt.Println(message)

このような場合は、無理に1行にせず、読みやすく整理するのがポイントです。

まとめ

まとめ
まとめ

Go言語では、三項演算子のような記法は使えませんが、if文を工夫することで1行記法として同様の処理が可能です。本記事では、Go言語に三項演算子がない理由から始まり、if文を使った短縮記法や、変数の定義を含めた1行での書き方まで丁寧に解説しました。
実際にGo言語で「条件によって文字列を切り替える」コードを1行で書く方法は、以下のような形でした。


if score >= 60 { result = "合格" } else { result = "不合格" }

さらに、次のようにif文の中で変数を定義し、そのスコープ内で処理を完結させる書き方もありました。


if value := getScore(); value >= 60 {
    fmt.Println("合格")
} else {
    fmt.Println("不合格")
}

このような短縮記法は、Go言語の読みやすさや明快さという設計方針に沿った書き方でもあります。三項演算子のような短い構文は一見便利に見えますが、可読性の観点では混乱を招くこともあり、Goではそれを避ける設計となっているのです。

また、Go言語では複雑な条件式や処理が増える場合は、無理に1行で書かず、複数行に分けて明確に記述することが推奨されます。このバランス感覚が、Go言語を扱う上での重要なポイントといえるでしょう。

本記事を通して、Go言語における条件分岐の書き方を深く理解できたかと思います。特に、JavaScriptやC言語などの経験者がGoに入門する際には、「三項演算子が使えない」という点が引っかかることがありますが、Goらしい書き方を知ることで、シンプルかつ意図が明確なコードが書けるようになります。

ぜひ、Goのコーディングスタイルに慣れていく中で、条件式の1行記法や短縮記法を適切に使いこなしましょう。そして、コードの可読性を保ちつつ、エレガントに処理を記述する力を磨いていくことが、実践的なGoプログラマーへの第一歩になります。

先生と生徒の振り返り会話

生徒

「Goって三項演算子がないのは不便かなって思ってたけど、if文で1行に書けるって知ってスッキリしました!」

先生

「そうですね。Go言語は明快なコードを書くことが大事なので、あえて三項演算子を排除しているんです。代わりにif文を工夫して使えば、同じように書けますよ。」

生徒

「あと、if文の中で変数を定義できる『短縮記法』も便利ですね!関数の戻り値を一時的に使いたいときに役立ちそうです。」

先生

「そのとおりです!短縮記法は一時的なスコープで使えるので、読みやすくスマートなコードになります。ただし、複雑な処理は無理に1行にせず、適切に分けるのがGoの流儀ですよ。」

生徒

「はい!読みやすさも大事にして、Go言語らしいコードを心がけていきます!」

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!