布尔? :操作语法
可能重复:
问号和冒号(?:三元运算符)在objective-c中的含义是什么?
我见过它使用类似语法的代码…
someValue = someBoolean ? valueOne : valueTwo;
或类似的东西。
我从来没有用过这个,我不确定它叫什么。
请有人解释如何使用它或提供有关它的资源的链接。
这是三元经营者。
它评估someBoolean
条件。
如果为true,则将valueOne
传递给someValue
如果为false,则将valueTwo
传递给someValue
它等于:
if(someBoolean) { someValue = valueOne; } else { someValue = valueTwo; }
这是一个很好的链接,解释了三元运算符
这称为三元运算符(?:)
1 ? 2 : 3
1是条件。
当1为真时执行2。
当1为假时执行图3的处理。
类似于:(以下不是正在运行的代码,1,2,3仅显示某些表达式和语句的占位符。
if(1){ //condition 2 //true } else{ 3 //false }
你可以缩短它:
int bigger; (10<100) ? bigger=100 : bigger=10;
简而言之:
int bigger = (10<100) ? 100 : 10 ;
注意:
它的优先顺序是最少的,它比if-else和switch case语句要慢得多。
它是ternary operator
(也称为conditional operator
)。 您可以在此链接中找到解释。
基本上你的表达式是,如果someBoolean
为true,someValue将获得valueOne
,否则它将获得valueTwo
。
它类似于:
if(someBoolean) { someValue = valueOne; } else { someValue = valueTwo; }
这会降低代码的可见性。 如果您想要分配一个取决于一个条件的值,我建议使用此运算符。
请注意,它是一个不是Objective-C
特有的表达式,您也可以在C
和C++
使用它。
赋值的结果是valueOne是条件为true,valueTwo如果条件为false。
在维基百科上查看。 它也使用其他语言,只需跳过它们并查看C语法示例。
假设用户需要回答一些问题,如果他错了,你将视图的背景颜色改为红色,如果他是正确的话,你会改变为绿色。
- (void)handleAnswer:(BOOL)correct { UIColor *color = (correct) ? [UIColor greenColor] : [UIColor redColor]; self.view.backgroundColor = color; }
它的作用与以下相同
if (someBoolean) { someValue = valueOne; } else { someValue = valueTwo; }