Project1

标题: 数组1 => [998,997] 这里的[]里的数据如何与“1..20”数段合并? [打印本页]

作者: 天使喝可乐    时间: 2012-5-20 23:07
标题: 数组1 => [998,997] 这里的[]里的数据如何与“1..20”数段合并?
比如
$class_canlearn_list = {  
          19 => 192...256,
          20 => [16,17]
          21 => []
                                  }
而 21这里  我希望是192..256、16、17这几个数据都存在  于是  有什么简便写法?
          20 => [192..256,16,17]   这样的写法 据说不行= =  有办法写吗?

非常感谢
dsu_plus_rewardpost_czw
作者: iisnow    时间: 2012-5-20 23:31
  1. 20 => ((192..256).to_a + [16,17])
复制代码
Range和Array是可以转化的,还有没有更简单的方法我不知道了就=。=
作者: orzfly    时间: 2012-5-21 12:37
iisnow 发表于 2012-5-20 23:31
Range和Array是可以转化的,还有没有更简单的方法我不知道了就=。=
  1. 20 => [*192..256, 16, 17]
复制代码
* 运算符将调用后面对象的 to_a 方法,然后展开……
这也是为什么可以这么写
  1. def abc(x, y, z)
  2.   x - y - z
  3. end
  4. args = [1, 2, 3]
  5. args2 = [1, 2]

  6. abc(*args)
  7. abc(*args2, 3)
  8. abc(*1..3)
  9. abc(*[1, 2, 3])
复制代码
的缘故……





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