Bla*_*man 5 ruby security bit-manipulation
我想创建一个包含给定用户的安全权限的位.
在c#中,我会通过创建一个枚举来做到这一点,然后我会对二进制值进行一些操作,通过和'&&'来查看它是否会产生一个TRUE值.
我怎样才能在Ruby中做到最好?
Jon*_*röm 12
如果基础值很重要,那么您可以创建一个像枚举一样使用的模块
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