gpt4 book ai didi

ios - 带有 && 运算符的 If 语句检查第二个值?

转载 作者:可可西里 更新时间:2023-11-01 03:36:10 24 4
gpt4 key购买 nike

如果第一个参数为 false/NO<,是否使用 && operator 检查第二个参数的 if 语句/?

下面会崩溃吗?

NSDictionary *someRemoteData = [rawJson valueForKey:@"data"];
if( [someRemoteData isKindOfClass:[NSDictionary class]] && someRemoteData.count > 0 ){
//..do something
}

请不要简单回答是或否,但请解释原因。

最佳答案

不,在得知答案将是 NO 后,它不会计算表达式。这称为短路,它是在 C、C++、Objective C 和其他具有类似语法的语言中评估 bool 表达式的重要部分。从左到右评估条件,使评估方案可预测。

同样的规则适用于 || 运算符:一旦代码知道值为 YES,评估就会停止。

短路使您可以防止单个复合表达式中的无效评估,而不是选择 if 语句。例如,

if (index >= 0 && index < Length && array[index] == 42)

如果不是为了短路,将会导致未定义的行为。但是由于当 index 无效时,评估跳过了 array[index] 的评估,所以上面的表达式是合法的。

关于ios - 带有 && 运算符的 If 语句检查第二个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341008/

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