猿问

在目标-c中,问号和冒号(?:三元运算符)意味着什么?

在目标-c中,问号和冒号(?:三元运算符)意味着什么?

这一行代码是什么意思?

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

这个?:把我弄糊涂了。


湖上湖
浏览 736回答 3
3回答

莫回无

这是C三元算子(目标-C是C的超集):label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;在语义上等同于if(inPseudoEditMode) {  label.frame = kLabelIndentedRect;} else {  label.frame = kLabelRect;}没有第一元素的三元。variable ?: anotherVariable)指的是(valOrVar != 0) ? valOrVar : anotherValOrVar

慕容3067478

它是三值或条件运算符。它的基本形式是:condition ? valueIfTrue : valueIfFalse其中,只有在选择值的情况下才会对其进行计算。

慕丝7291255

三元运算符的重要之处在于,它可以在if-Other不能使用的地方使用。IE:在条件或方法参数内。[NSString stringWithFormat: @"Status: %@", (statusBool ? @"Approved" : @"Rejected")].这是预处理常量的一个很好的用途:// in your pch file...#define statusString (statusBool ? @"Approved" : @"Rejected") // in your m file...[NSString stringWithFormat: @"Status: %@", statusString]这使您不必使用和释放局部变量的if-Other模式。
随时随地看视频慕课网APP
我要回答