三元运算符错误 - "Expected expression"
Ternary operator error - "Expected expression"
我没有经常使用三元运算符,但我在这方面遇到了错误:
(isInitializing) ? (return YES) : (isInitializing = 1);
错误是:"Expected Expression" 并且它指向 return YES
。
不要将三元运算符用于 "do stuff",而是用于 return 两个值之一。
所以这是一个有效的案例:
NSString *something = (isInitializing ? @"value a" : @"value b");
在你的情况下,你可能想这样做:
if (isInitializing) {
return YES;
} else {
isInitializing = 1;
}
三元运算符用于根据条件 return 两个值之一。它不常用于执行语句,因此 return
有点问题。当你不想区分值,而是有两个不同的执行路径时,我宁愿使用 if
。
我没有经常使用三元运算符,但我在这方面遇到了错误:
(isInitializing) ? (return YES) : (isInitializing = 1);
错误是:"Expected Expression" 并且它指向 return YES
。
不要将三元运算符用于 "do stuff",而是用于 return 两个值之一。 所以这是一个有效的案例:
NSString *something = (isInitializing ? @"value a" : @"value b");
在你的情况下,你可能想这样做:
if (isInitializing) {
return YES;
} else {
isInitializing = 1;
}
三元运算符用于根据条件 return 两个值之一。它不常用于执行语句,因此 return
有点问题。当你不想区分值,而是有两个不同的执行路径时,我宁愿使用 if
。