三元运算符错误 - "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