这行代码是什么意思?

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
?: 让我很困惑。

最佳答案

这是 C ternary operator(Objective-C 是 C 的超集):

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

在语义上等同于
if(inPseudoEditMode) {
 label.frame = kLabelIndentedRect;
} else {
 label.frame = kLabelRect;
}

没有第一个元素的三元(例如 variable ?: anotherVariable )表示与 (valOrVar != 0) ? valOrVar : anotherValOrVar 相同

关于objective-c - 问号和冒号 (? : ternary operator) mean in objective-c?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2595392/

10-17 01:51