我正在尝试实现以下C代码的等效值:

someStringValue = someStringValue ?? string.Empty;

如果someStringValue为空,则将分配string.Empty(空字符串:"")的值。如何在目标C中实现这一点?是我唯一的选择:
if(!someStringValue)
   someStringValue = @"";

感谢@dave delong:
someStringValue = someStringValue ?: @"";

最佳答案

简单,使用三元运算符。

someStringValue = someStringValue ? someStringValue : @"";

或者如果你想要一个宏,你也可以这样做。
#if !defined(StringOrEmpty)
    #define StringOrEmpty(A)  ({ __typeof__(A) __a = (A); __a ? __a : @""; })
#endif

示例用法:
someStringValue = StringOrEmpty(someStringValue);

关于objective-c - 仅当变量为nil时分配空字符串(三元运算符),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14174864/

10-12 05:41