Q
红宝石撞位
4
A
回答
13
如果底层的价值是很重要的,那么你可以创建你使用像一个枚举
module Groups
ADMIN = 1
BOSS = 2
CLERK = 4
MEAT = 8
BREAD = 16
CHEESE = 32
end
要设置权限的模块只是按位or
在一起
permissions = Groups::BOSS | Groups::MEAT | Groups::CHEESE
,并测试你做一个按位and
>> permissions & Groups::CHEESE > 0
=> true
>> permissions & Groups::BREAD > 0
=> false
我也喜欢你如何可以使实际位掩码更具可读性与_
这样
permissions = 0b0010_1010
1
4
Bitwse操作在Ruby中微不足道。
> 1 | 2 # Create a bitmask from permission 2^0 + 2^1
=> 3
> 3 & 1 == 1 # See if the bitmask contains the 2^0 permission
=> true
> 3 & 4 == 4 # See if the bitmask contains the 2^2 permission
=> false
相关问题
- 1. 红宝石按位或
- 2. Ubuntu的红宝石位置
- 3. 红宝石散列在红宝石
- 4. 红宝石宝石文档
- 5. 宝石安装红宝石
- 6. 调试宝石红宝石
- 7. 红宝石程序宝石
- 8. 错误红宝石宝石
- 9. Twitter的红宝石宝石
- 10. 卸载红宝石宝石
- 11. 红宝石宝石 - LoadError
- 12. 红宝石宝石LoadError
- 13. 安装红宝石宝石
- 14. Python /红宝石:cronjob将不会加载红宝石宝石?
- 15. 在红宝石
- 16. 红宝石
- 17. 在红宝石
- 18. 与红宝石
- 19. 从红宝石
- 20. 红宝石
- 21. 从红宝石
- 22. 红宝石 - LoadError
- 23. 红宝石
- 24. 红宝石
- 25. 红宝石
- 26. 在红宝石
- 27. 红宝石
- 28. 从红宝石
- 29. 红宝石 - encrypted_strings
- 30. 红宝石
为什么你希望它是一个位字段,而不是一个哈希或一些其他层次的概念? – einarmagnus 2010-10-05 21:21:23
你的意思是按位和'&'不是逻辑和'&&',当然? – horseyguy 2010-10-05 23:50:26