Golangにおける三項演算子について詳しく解説します

Golang

多くのプログラミング言語には、三項演算子と呼ばれる、if-elseの連鎖のように評価する演算子(?:)が存在します。

しかし、Goには三項演算子がありません。この記事では、なぜGoに三項演算子がないのかについて掘り下げていきます。

三項演算子とは

三項演算子とは、条件値に使用する「?:」演算子のことです。

RubyやJavaScriptにおける、三項演算子の構文は以下の通りです。

戻り値 = 条件式 ? trueの値 : falseの値

使い方の例です。

result = t > 0 ? 100 : 30

上記の例だと、tが0より大きければ100を返し、そうでなければ30を返すという意味になります。

そして、このような構文がGolangにはありません。

なぜGolangに三項演算子が無いのか?

どうしてGolangに三項演算子が存在しないのか?

その理由はシンプルに設計上の選択だからです。三項演算子は一旦理解すれば簡単な演算子ですが、実はコードを書き始めたばかりの人にとっては分かりづらい書き方です。

そのため、Goというプログラミング言語は、if-elseというシンプルなアプローチを選びました。

少し長い書き方ですが、三項演算子より読みやすくなっています。

三項演算子に代わる対処法

これは上記でも述べていますがif-elseブロックを使えば同じことができます。また、同じコードをよりシンプルに表現することができます。

以下は、if-elseブロックを使用した簡単なコード例です。

if i > 0 {
       v = 1
} else {
       v = 0
}

三項演算子より少し冗長ですが、これはGoの作成者が選択した設計上のものです。

その理由のひとつは、三項演算子の乱用によって、読みにくい複雑なコードを作ってしまった(作りやすくなる)ことです。

if-elseブロックを使うしかないのは、よりクリーンで読みやすいアプローチを強制するためです。

タイトルとURLをコピーしました