三項演算子とは
if ~ else ~ を1つの文で書くときの演算子。
Rubyなどでコンパクトな表現に置き換えられる。
ternary operatorともいうので3つのものを1組にして動かすってイメージ。
論理値(条件式) ? 何かをする(条件式a) : 別のことをする(条件式式b)
論理値(条件式)を評価して結果が真なら 何かをする(条件式a), 偽なら 別のことをする(条件式式b)を評価してその結果を値とする。
少し細かく
# 普通に書くとき
if 論理値(条件式)
何かをする(条件式a)
else
別のことをする(条件式式b)
end
# 三項演算子のとき
論理値(条件式) ? 何かをする(条件式a) : 別のことをする(条件式式b)
if boolean?
var = foo
else
var = bar
end
var = boolean? ? foo : bar
それとメソッドの戻り値として使うこともよくあるみたい。
def foo
do_stuff
boolean? ? "bar" : "baz"
end
Rubyでは暗黙的にメソッドの最後に評価した式の結果を返すので、上のfooメソッドは、boolean?がtrueであるかfalseであるかに応じて、"bar"または"baz"をそれぞれ返します。