说我有......
if (value1 == 1 || value1 == 3 || value1 == 6) {
//Things happen
}
由于每次都引用value1,有没有更快的方法呢?
答案 0 :(得分:3)
不是。
另一种选择是:
switch (value1)
{
case 1:
case 3:
case 6:
// Things happen
}
但它不是“更快”!
答案 1 :(得分:2)
您可以使用switch语句:
switch (value1)
{
case 1:
case 3:
case 6:
//Things happen
break;
case 4:
//Something else happens
break;
default:
//Something else happens
}
如果你有很多if语句检查同一个变量,那么这很有用。
答案 2 :(得分:1)
如果你的意思是做:
if (value1 in {1, 3, 6}) ...
然后不,你不能做那样的事情。 Objective-C没有任何基本类型的集合运算符。但是,还有其他方法可以编写代码,以便您可以快速执行类似的操作。例如,如果可能值的数量不是太大,则可以使用位位置:
if (value1 & (0x02 | 0x08 | 0x20)) ...
编译器可能会在编译时对这些常量进行OR运算,因此整个比较只需要按位AND运算。