1. ホーム
  2. オブジェクティブC

[解決済み】objective-cのクエスチョンマークとコロン(?:三項演算子)の意味とは?

2022-04-14 07:16:07

質問

このコードの行は何を意味するのでしょうか?

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

?: は私を混乱させる。

どのように解決するのですか?

これは、C 三項演算子 (Objective-CはC言語のスーパーセットです)。

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

とは意味的に同じです。

if(inPseudoEditMode) {
 label.frame = kLabelIndentedRect;
} else {
 label.frame = kLabelRect;
}

最初の要素がない三項(例. variable ?: anotherVariable と同じ意味です。 (valOrVar != 0) ? valOrVar : anotherValOrVar