不活跃? @“无效”:@“主动”语法?

有人可以解释inactive ? @"inactive": @"active" inactive ? @"inactive": @"active"

这个? :是一个布尔条件结构(错误的术语),似乎但我没有得到它。 不知道它叫什么,所以不能查找它。

似乎是这样的:

someBooleanValue? 如果是冒号, 那么冒号之前的 是什么?

我得到它正在被用来确定哪个string作为格式标记(在下面的代码中)。 我只是不知道这是什么? :位被调用,并且可能有什么限制/警告/滥用。

(而不是像雷利那样的rilly很难以文明的方式进行格式化)

  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]; 

这个东西被称为条件运算符三元运算符

这是一个简单的条件

 if ( CONDITION ) x = a; else x = b; 

可以翻译成

 x = CONDITION ? a : b 

从那里你可能会得到你想要完成/理解的function。 请记住,尽pipe你可以用它作为普通的if / else-if / else结构的替代品,但是将三元运算符的用法排除在任何“赋值相关操作”之外是不好的。

在维基百科页面中,您可以find各种使用不同编程语言的条件运算符的示例。 也检查这一个 ,三元运算符页面。

Obs:certificate一个三元运算符不一定是一个条件expression式,而是任何有三个参数的运算符。 因为对于大多数编程语言来说,唯一的三元运算符就是inline-if …那么这就是通常所说的。

它被称为条件运算符 ,一种三元运算符 (与更为熟悉的二进制 a+b一元 !flag运算符相反)。

条件运算符接受一个条件,对其进行求值,并根据结果返回其第二个或第三个操作数。

你可以在这里阅读更多的信息。

使用这个操作符可以大大减less代码的长度,当涉及很多简单的时候。

这是一个三元操作符,但是你有它 – 如果布尔值是真的,那么在冒号前面做,否则后面的。

这被称为三元运算符 ,它的工作原理与您描述的一样:

表情 值如果为真如果为false则为值 ;

例如,你可以使用它来避免if – else:

 int maxValue = a > b ? a : b; 

编辑: @dasblinkenlight是正确的,你所说的操作符实际上被称为条件操作符,这是一种三元操作符。