三項条件演算子は、3 つのパートで構成される特殊な演算子で、question ? answer1 : answer2 という形式を取ります。question が true か false かによって、2 つの式のうちの 1 つを評価する簡単な方法です。question が true の場合は answer1 を評価して値を返し、false の場合は answer2 を評価して値を返します。

三項条件演算子は、以下のコードの簡略表現です。

if question {
    answer1
} else {
    answer2
}

次は、テーブル行の高さを計算する例です。行にヘッダがある場合は行の高さが内容よりも 50 ポイント高く、ヘッダが無い場合は 20 ポイント高くなります。

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight は 90

前の例は、以下のコードの簡略表現です。

let contentHeight = 40
let hasHeader = true
var rowHeight = contentHeight
if hasHeader {
    rowHeight = rowHeight + 50
} else {
    rowHeight = rowHeight + 20
}
// rowHeight は 90

初めの例での三項条件演算子の使用例は、1 行のコードで rowHeight に正しい値を設定することができます。if 文内で値が変更されることが無いため rowHeight が変数である必要がなく、2 つ目の例よりも簡潔です。

三項演算子は効率的な簡略表現ですが、多用しすぎるとコードを読みにくくするため、注意して使用してください。複数の三項演算子を組み合わせて結合することは避けてください。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.