有人可以解释inactive ? @"inactive": @"active"
吗?
? :它似乎是一个布尔条件结构(错误的术语),但我并没有得到它。不知道它叫什么,所以不能查找。
似乎是这样的:
someBooleanValue? 如果是假的,请使用 之前冒号:否则使用 在
之后 是什么
我知道它被用来确定哪个字符串用作格式标记(在下面的代码中)。我只是不知道这是什么? :bit被调用,可能有什么限制/警告/滥用。
(并且不像文件那样难以格式化像rilly
这样的ObjC)
UIAlertView* av = [[UIAlertView alloc] initWithTitle:@"Hey"
message:[NSString
stringWithFormat:@"While %@, I received a local notification: %@",
inactive ? @"inactive": @"active", n.alertBody]
delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av show];
答案 0 :(得分:2)
这个?:被称为条件运算符或三元运算符。
它代表一个简单的条件
if ( CONDITION )
x = a;
else
x = b;
可以翻译为
x = CONDITION ? a : b
从中你可以得出你想要完成/理解的功能。请记住,虽然您可以使用它作为正常的if / else-if / else结构的替代,但是对于任何“赋值相关操作”中的三元运算符的使用被认为是错误的编程。
在the wikipedia page for it中,您可以找到各种编程语言中使用的条件运算符的各种示例。检查this one,三元运算符页面。
Obs:事实证明,三元运算符不一定是条件表达式,而是任何带有三个参数的运算符。因为对于大多数编程语言来说,唯一的三元运算符是内联 - 如果......好吧,那就是它通常被称为。
答案 1 :(得分:1)
它被称为conditional operator,一种三元运算符(而不是更熟悉的二进制 a+b
或一元 !flag
运营商)。
条件运算符接受一个条件,对其求值,并根据该结果返回其第二个或第三个操作数。
答案 2 :(得分:1)
您可以阅读更多信息here。
当涉及许多简单的if
时,使用此运算符可以大大减少代码长度。
答案 3 :(得分:0)
它是一个三元运算符,但你向后运行 - 如果布尔值为真,那么在冒号之前做事,否则,在结束之后做。
答案 4 :(得分:0)
这称为三元运算符,它的工作方式与您描述的完全相同:
表达式?值如果为true :值,如果为false ;
例如,你可以使用它来做这样的事情来避免if - else:
int maxValue = a > b ? a : b;
编辑: @dasblinkenlight是正确的,您正在谈论的运算符实际上称为条件运算符,它是一种三元运算符。