Project1

标题: 请教RGSS中的<<表示什么意思 [打印本页]

作者: 赛露休斯    时间: 2013-3-1 17:37
标题: 请教RGSS中的<<表示什么意思
经常看到有 一个实例<<另一个实例 这样的符号,表示什么意思
作者: 紫英晓狼1130    时间: 2013-3-1 17:51
本帖最后由 紫英晓狼1130 于 2013-3-1 19:29 编辑

脚本的优先执行吧…
我也不确定…

好吧,我说错了…
我什么都不会吗?
作者: 英顺的马甲    时间: 2013-3-1 17:51
本帖最后由 英顺的马甲 于 2013-3-1 18:03 编辑

对整数来说就是
二进制上向左移n个位
2 的二进制为 10
所以 2 << 1 就是二进制100
所以就是 2 << 1 = 4
而 2 >> 1 就是二进制1
2 >> 1 = 1
以此类推
提供一段脚本做参考
RUBY 代码复制
  1. def left(i,n)
  2.   s = i.to_s(2)
  3.   n.times{s += "0"}
  4.   s.to_i(2)
  5. end
  6. def right(i,n)
  7.   s = i.to_s(2)
  8.   n.times{s.slice!(-1,1)}
  9.   s.to_i(2)
  10. end
  11. p (left 2,1)==2<<1
  12. p (right 2,1)==2>>1
  13. p (left 2,2)==2<<2
  14. p (right 2,2)==2>>2
  15. p (left 2,3)==2<<3
  16. p (right 2,3)==2>>3

至于字符串以及其他的类都有个别的定义==
作者: 赛露休斯    时间: 2013-3-1 18:44
本帖最后由 赛露休斯 于 2013-3-1 18:52 编辑

谢谢楼上^_^
那么数组呢?比如一个数组<<另外一个对象

我发现

  1. z = []
  2. k = "qw"
  3. g = "ghj"
  4. z << k
  5. z << g
  6. p z
复制代码

  1. z = []
  2. k = "qw"
  3. g = "ghj"
  4. z.push(k)
  5. z.push(g)
  6. p z
复制代码
两者效果是一样的
作者: rocent    时间: 2013-3-1 19:09
赛露休斯 发表于 2013-3-1 18:44
谢谢楼上^_^
那么数组呢?比如一个数组

对于数组我觉得应该是移入的关系,而且是不覆盖的移入,譬如如果我开始时定义了z = [5]的时候重复下面的步骤,此时z[0]=5,而移入的qw就放置z[1],如此类推……
而push命令也就这么一个意思,这是因为在ruby里数组是数位只能扩充的,所以如果你没有开始就定义移入哪个位置,那<<命令就会按顺序放置,与push一样(当然push可以按希望放置在某一数位)
作者: zhangbanxian    时间: 2013-3-1 23:42
其实,本质上就是调用该实例的<<方法,这是可以重定义的,建议多翻翻ruby手册...




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