【发布时间】:2011-08-01 09:37:01
【问题描述】:
我是 Ruby 的新手,没能通过 Google 搜索这个简单的问题:
在 Ruby 中获取数字列表[1, 2, ..., n] 的正常方法是什么?在 Haskell 中,我只需键入 [1..n],我相信在 Ruby 中这也很容易,但我猜不出来。
【问题讨论】:
我是 Ruby 的新手,没能通过 Google 搜索这个简单的问题:
在 Ruby 中获取数字列表[1, 2, ..., n] 的正常方法是什么?在 Haskell 中,我只需键入 [1..n],我相信在 Ruby 中这也很容易,但我猜不出来。
【问题讨论】:
1..n 是 Ruby 中的 Range。您可以使用(1..n).to_a 或更短的形式[*1..n] 将其转换为数组。
根据您的操作,直接使用 Range 可能会更有效。
【讨论】:
[*1..n]。你有一个链接来解释它为什么起作用吗?我一直在寻找那个,& 也有一段时间了,但我根本找不到这些功能的描述。
Ruby 有特殊的范围对象,写成1..10 或其他。出于多种目的,您可以使用其中之一来代替数组。如果需要数组,调用范围对象的to_a方法:
(1..10).to_a
【讨论】:
to_array
你的意思是一个范围?你可以这样做:
(0..n)
这将为您提供一个包含数字 0 到 9 的数组。
有关范围和数组的更多信息,请访问此处:http://www.ruby-doc.org/core/classes/Range.html
【讨论】:
另一种方法是
1.upto(9).to_a
本身很无聊,但你也可以这样做
1.step(10, 3).to_a #=> [1, 4, 7, 10]
【讨论】: