基本的には if else の代替 として考えて良いよ。
Swiftでと書いたけど、オーソドックスな使い方でJavaなんかと変わらないよ。
Swiftで三項演算子を使う方法
1 2 3 4 |
let num1 = 4 let num2 = 13 num1 == num2 ? print("同じ値だよ") : print("違う値だよ") // "違う値だよ" |
これを試しにif elseで書いてみると
1 2 3 4 5 6 7 8 |
let num1 = 4 let num2 = 13 if (num1 == num2) { print("同じ値だよ") } else { print("違う値だよ") } |
上のほうがスマートに書けるね。
でも、可読性なんかを考えると三項演算子は万能ではないので使い方には注意しよう。
ちなみに代入の際にも使えるよ。
Swiftで三項演算子を使って代入する
1 2 3 |
let result = num1 == num2 ? "同じ値だぜ" : "違う値だぜ" print(result) // "違う値だぜ" |
これも同じようにif elseで書いてみると
1 2 3 4 5 6 7 |
let result: String if (num1 == num2) { result = "同じ値だぜ" } else { result = "違う値だぜ" } print(result) // "違う値だぜ" |
どっちを使うかは好みだけど、ボクは三項演算子はなるべく使っていきたいタイプ。
(コーディング規約で禁止している会社なんかもあるよ)
以下の記事で使い分けの話が出てて、気になったら見てみよう。
参考: 三項演算子は悪か?