我可以在 Apple 的文档中看到枚举有时是这样定义的
enum {
UICollectionViewScrollPositionTop = 1 << 0,
UICollectionViewScrollPositionBottom = 1 << 1
}
<< 是什么意思?
我可以在 Apple 的文档中看到枚举有时是这样定义的
enum {
UICollectionViewScrollPositionTop = 1 << 0,
UICollectionViewScrollPositionBottom = 1 << 1
}
<< 是什么意思?
这是按位左移运算符。它用于创建具有单个位集的值,当打算通过按位 OR 组合时非常常见。
对于这些值,您稍后可能会说:
const int top_and_bottom = UICollectionViewScrollPositionTop | UICollectionViewScrollPositionBottom;
这将导致top_and_bottom
设置为 3(二进制 11 2)。
这里只是左位移位。所以这意味着1<<0
=1
例如。并且1<<1
是两个。也许作者选择这种方式来初始化枚举是为了强调UICollectionViewScrollPositionTop
只有最低有效位和UICollectionViewScrollPositionBottom
只有倒数第二位的事实。我猜这个枚举的用途是以后以某种方式形成位掩码。