设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1779|回复: 2
打印 上一主题 下一主题

[已经解决] 数组1 => [998,997] 这里的[]里的数据如何与“1..20”数段合并?

[复制链接]

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

跳转到指定楼层
1
发表于 2012-5-20 23:07:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如
$class_canlearn_list = {  
          19 => 192...256,
          20 => [16,17]
          21 => []
                                  }
而 21这里  我希望是192..256、16、17这几个数据都存在  于是  有什么简便写法?
          20 => [192..256,16,17]   这样的写法 据说不行= =  有办法写吗?

非常感谢

点评

http://ideone.com/P6X8s 结果无误?  发表于 2012-5-22 06:58

Lv2.观梦者

梦石
0
星屑
508
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

2
发表于 2012-5-20 23:31:19 | 只看该作者
  1. 20 => ((192..256).to_a + [16,17])
复制代码
Range和Array是可以转化的,还有没有更简单的方法我不知道了就=。=

点评

这根指针有半毛钱关系吧…… 不过 * 都可以理解成扩展、展开……  发表于 2012-5-21 13:28
是的  发表于 2012-5-21 12:04
如果是两个数段的话 是 20 => ((192..256).to_a + (16..28).to_a) 这样?0w0  发表于 2012-5-21 11:40
我帖子中要有是不HX的空白,请Ctrl + A
回复

使用道具 举报

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

3
发表于 2012-5-21 12:37:23 | 只看该作者
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])
复制代码
的缘故……

点评

[*913..966, *690..694] 我这样写 报错了?、= =  发表于 2012-5-21 23:38
这个好像可以当成是指针来理解是吧  发表于 2012-5-21 13:19

评分

参与人数 1星屑 +170 收起 理由
iisnow + 170 LZ,这个才是最好的答案啊~

查看全部评分

我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 03:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表