gpt4 book ai didi

objective-c - '?:' 和 objective-c 中的 if 语句有什么区别吗?

转载 作者:太空狗 更新时间:2023-10-30 03:30:29 24 4
gpt4 key购买 nike

使用“?:”条件语句和简单的“if-then-else”语句有区别吗?它只是另一种方法,还是它实际上比“if”语句使用更少的空间/花费更少的时间来阅读?

例子:

如果语句:

if (item1.isEqualToString:@"2") //If statement
[self doSomething];
else
[self doSomethingElse];

item1.isEqualToString:@"2" ? [self doSomething] : [self doSomethingElse]; //'?:' statement

最佳答案

是的,有区别。

从语义上讲,if/else 语句意味着

if (condition)
statements
else
statements

虽然三元条件是

condition ? expression : expression

因此您可以将 ?: 运算符的结果分配给某些东西,而您不能使用 if 语句来做到这一点。实际上 ?: 运算符本身就是一个表达式,因此您可以将它嵌套在其他表达式中,甚至是其他 ?: 运算符。

?: 也是类型检查,这

condition ? [self methodThatReturnsVoid] : [self methodThatReturnsInt]

引发错误,因为结果类型可能会根据条件发生变化。

关于objective-c - '?:' 和 objective-c 中的 if 语句有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com