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