我可以在 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只有倒数第二位的事实。我猜这个枚举的用途是以后以某种方式形成位掩码。