我尝试比较我的 Ruby 应用程序中的标志。
我有这个代码:
if self.flag &~ flag == self.flag
return false
但它不会运行。我已经将问题缩小到这个:
irb(main):020:0> my_user.flag
=> 1
irb(main):021:0> flag
=> 128
irb(main):022:0> my_user.flag.class
=> Fixnum
irb(main):023:0> flag.class
=> Fixnum
irb(main):024:0> my_user.flag &~ flag
TypeError: wrong argument type Fixnum (expected Proc)
这真的很令人不安,因为它是这样工作的:
irb(main):025:0> 1 &~ 128
=> 1