为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
湖上湖 2019-06-21 17:13:34
在目标-c中,问号和冒号(?:三元运算符)意味着什么?这一行代码是什么意思?label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;这个?和:把我弄糊涂了。
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

这是C三元算子(目标-C是C的超集):

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

在语义上等同于

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

没有第一元素的三元。variable ?: anotherVariable)指的是(valOrVar != 0) ? valOrVar : anotherValOrVar


查看完整回答
反对 回复 2019-06-21
?
慕容3067478

TA贡献1773条经验 获得超3个赞

它是三值或条件运算符。它的基本形式是:

condition ? valueIfTrue : valueIfFalse

其中,只有在选择值的情况下才会对其进行计算。


查看完整回答
反对 回复 2019-06-21
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

三元运算符的重要之处在于,它可以在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模式。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 735 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信