Project1

标题: 关于|= [打印本页]

作者: 九靈    时间: 2013-8-31 19:45
标题: 关于|=
本帖最后由 九靈 于 2013-8-31 19:46 编辑

赋值运算符
= 、 += 、 -= 、 *= 、 /= 、 %= 、 &= 、 |= 、 ^=


Game_Battler 3
RUBY 代码复制
  1. # HP 以及 SP 的回复
  2.       last_hp = self.hp
  3.       last_sp = self.sp
  4.       self.hp += recover_hp
  5.       self.sp += recover_sp
  6.       effective |= self.hp != last_hp
  7.       effective |= self.sp != last_sp
  8.       # 状态变化
  9.       @state_changed = false
  10.       effective |= states_plus(item.plus_state_set)
  11.       effective |= states_minus(item.minus_state_set)



问题 :
1. 参考以上代码,赋值运算符 |= 怎么用? 应该说怎么赋值的?
2. &=、 ^= ,同上
作者: orzfly    时间: 2013-8-31 20:34
a |= b 等同于 a = a | b
a &= b 等同于 a = a & b
a ^= b 等同于 a = a ^ b

| 叫做 按位或运算符
& 叫做 按位与运算符
^  叫做 按位异或运算符

0b11110000 & 0b11001100 = 0b11000000
0b11110000 | 0b11001100 = 0b11111100
0b11110000 ^ 0b11001100 = 0b00111100
0b 依然是代表二进制数字的前缀。
作者: 九靈    时间: 2013-8-31 21:51
orzfly 发表于 2013-8-31 20:34
a |= b 等同于 a = a | b
a &= b 等同于 a = a & b
a ^= b 等同于 a = a ^ b

是二进制啊...
但是上面那句:
【effective |= self.hp != last_hp】
这个是 boolean |= boolean 啊...
true、false 是二进制吗?
true、false 的按位或?
作者: 九靈    时间: 2013-8-31 21:51
本帖最后由 九靈 于 2013-8-31 22:05 编辑

Boolean也有二进制型?
还是跟or || 相同?(a = a | b)
作者: myownroc    时间: 2013-8-31 22:23
本帖最后由 myownroc 于 2013-8-31 22:28 编辑
九靈 发表于 2013-8-31 21:51
Boolean也有二进制型?
还是跟or || 相同?(a = a | b)


2楼是拿二进制做例子,boolean也适用于或且非的吧。
话说你还学过vb?还是其他的语言?
作者: orzfly    时间: 2013-8-31 22:43
九靈 发表于 2013-8-31 21:51
Boolean也有二进制型?
还是跟or || 相同?(a = a | b)

& | ^ 同样可以操作 true/false,同 && || ^^。
&& || ^^ 这个叫做逻辑与、或、异或运算符。

但是,不要学习 Enterbrain 的傻○写法。

----

另外,Ruby 没有任何叫做 Boolean 的东西。
true 是 TrueClass 的唯一实例,
false 是 FalseClass 的唯一实例。
作者: 九靈    时间: 2013-8-31 23:43
@弗雷德 麻烦结帖




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1