| 赞 | 15 |
| VIP | |
| 好人卡 | |
| 积分 | 19 |
| 经验 | |
| 最后登录 | 2026-5-25 |
| 在线时间 | 404 小时 |
- 梦石
- 0
- 星屑
- 1944
- 在线时间
- 404 小时
- 注册时间
- 2015-8-30
- 回帖
- 322
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
比如说咱有个Klass类,而Klass对象有一些bool型的属性,比如a,b,c,d之类的
我以前会这么写[pre lang="ruby"]class Klass
attr_accessor :a, :b, :c, :d
def initialize
@a = false
@b = false
@c = false
@d = false
end
end[/pre]后来我发现了一种很神奇的写法……[pre lang="ruby"]class Klass
FLAG_A = 0b0001
FLAG_B = 0b0010
FLAG_C = 0b0100
FLAG_D = 0b1000
def initialize
@flags = 0b0000
end
def set_flag(flag, bool)
bool ? @flags |= flag : @flags &= ~flag
end
def get_flag(flag)
@flags & flag == flag
end
end[/pre]这难道就是位运算的真谛? |
|