↓のように書くと「"sss and bbb"」と出力されそうな気がするが
s = "sss and "
s << "aaa" == "aaa" ? "bbb" : "ccc"
p s
結果は↓
"sss and aaa"
と出てしまう。「<<」の演算子の優先順位が「==」より高いため、代入が先に動いしまうよう。
なので、()をつけて右辺の優先順位を上げてあげないとダメ。
s = "sss and "
s << ("aaa" == "aaa" ? "bbb" : "ccc")
p s
↓結果
"sss and bbb"
- 演算子の優先順位(関係演算子、論理演算子)