赞 | 189 |
VIP | 627 |
好人卡 | 188 |
积分 | 95 |
经验 | 171230 |
最后登录 | 2024-7-3 |
在线时间 | 5073 小时 |
Lv4.逐梦者 (版主)
- 梦石
- 0
- 星屑
- 9532
- 在线时间
- 5073 小时
- 注册时间
- 2013-6-21
- 帖子
- 3580
|
'|'运算符是按位或的意思,这个在true和false上进行操作可以简单地理解为“逻辑或”,效果和运算符'||'差不多。
而这两个运算符的含义就是'or',即“或者”。
所以有如下的运算规则:
true | true #=> true
true | false #=> true,反过来也一样
false | false #=> false
再继续说'|=',这个就是取按位或运算再对自身赋值,和'+=','-='差不多,只不过运算取的事按位或。
所以这句话可以解释为(把自赋值运算展开):
effective = effective | (self.state_full?(i) == false)
这里为了看着更明显,使用了括号,实际可不用。
意思就是说,如果第i号状态不是“满状态”(满状态的定义是状态的剩余回合数=状态解除的最低回合数),那么该附加状态就成功,技能的有效标志为有效。在这基础上和原来的有效标志做按位或运算(即如果原来的有效标志就是true的(技能已经有了效果),那么运算之后依然是true)。如果第i号状态是“满状态”,那么该状态附加失败,此效果为无效。但是该技能还可能有其他的效果,所以也要和原来的effective比对。 |
|