来自极度被宠坏的家庭教育(turbo pascal、python、ruby),当我要自己做所有家务时,我有点困惑。
昨天是我找不到解决方案的日子之一。我必须检查一个值是否与其他一些值之一匹配。
x = some_function_return_value();
if x in (1,4,17,29,35):
我以前就是这样写的。现在使用 Objective-C 我显然不能那样做。我搜索了旧的谷歌,但没有找到答案,也没有找到旧的手册,那里什么也没有,那么你如何在 Objective-C 中做到这一点,而不是像下面这样胡思乱想?
if (x == 1 || x == 4 || x == 17 || x == ...) {
已编辑:在这种情况下它是一个 (int),我知道对于 NSArray 和 NSString 有一些方法
最佳答案
如果是整数值,可以使用switch
:
switch (x) {
case 1:
case 4:
case 17:
case 29:
case 35:
do_something();
break;
}
不要忘记,在 C/C++/Objective-C 中,默认情况下,情况会进入下一个。您需要添加 break;
语句来防止这种情况发生。
对于非整数值,您必须执行大量重复的长 if
语句,因为 C 不提供许多脚本语言必须缩写的语法糖或功能。
另一种方法是准备一个数组,然后执行:
if ([myArray containsObject:[NSNumber numberWithInteger:x]])
或者更好的是,为此使用 NSSet
。这适用于大多数对象,例如它也适用于字符串。
关于objective-c - 在 objective-c 中,值 "in"是其他一些值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063956/