【发布时间】:2013-06-07 07:55:01
【问题描述】:
每个人。最近在学习OC的时候,总是遇到这样的enum。
enum {
type1 = 0,
type2 = 1 << 0,
type3 = 1 << 1,
};
type = 1
【问题讨论】:
-
是左移位运算符。
1 << 0实际上等于 1,但枚举作者只是想更清楚地说明它在同一组后面的枚举中type3type4等。 -
包含 0 真的很奇怪和不寻常,因为您不能将
type1视为其他人之一。 -
谢谢大家。我明白了。
-
像这样为枚举赋值实际上是一种表示标志的好方法。例如,您可以检查枚举变量的值,并通过与 (type2 | type3) 进行位与来确定它是否既是 type2 又是 type3,
(var & (type2 | type3)) == (type2 | type3)表示它既是 type2 又是 type3。只是说。 :) -
得到了另一个提示。很高兴! @n3rd4n1
标签: objective-c c