我正在尝试实现以下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/