ジュリアの三項演算子 ? :
概要
ジュリアでのA ? B : C
は、いわゆる三項演算子ternary Operatorで、A
が真ならB
、偽ならC
を返す関数だ。数学的に二項演算が関数として定義されるように、三項演算もまた関数だ。条件文と似ているけれども、このような本質的な違いがあるため、慣れれば非常に便利に使える。ただし、読みやすいコードからはちょっと離れることがあるので、無理に乱用する必要はないし、逆に気に入らなくても他の人が使うかもしれないから、ある程度は慣れておく必要がある。
コード
julia> x = iseven(2) ? "even" : "odd"; x
"even"
julia> y = iseven(3) ? "even" : "odd"; y
"odd"
上の命令は、与えられた数が偶数か奇数かに応じて、変数x
、y
に"even"
または"odd"
という文字列を代入している。
julia> x * y
"evenodd"
条件文じゃなく関数だから、こんなに便利なコードが書ける。同じ機能を条件文だけでやろうとすると、スコープscopeなどの問題で無駄に長くなりがちだ。
全体のコード
x = iseven(2) ? "even" : "odd"; x
y = iseven(3) ? "even" : "odd"; y
x * y
環境
- OS: Windows
- julia: v1.6.3