我是Ruby新手,无法谷歌这个简单的问题:如何在Ruby中创建列表?
在Ruby中获取数字列表[1, 2, ..., n]
的正常方式是什么?在Haskell中,我只输入[1..n]
,我相信这在Ruby中也很容易,但我无法猜测它。
我是Ruby新手,无法谷歌这个简单的问题:如何在Ruby中创建列表?
在Ruby中获取数字列表[1, 2, ..., n]
的正常方式是什么?在Haskell中,我只输入[1..n]
,我相信这在Ruby中也很容易,但我无法猜测它。
1..n
是Ruby中的Range。您可以使用(1..n).to_a
或更短的格式[*1..n]
将其转换为数组。
根据你在做什么,直接使用范围可能会更有效。
Ruby有特殊范围的对象,写成1..10
或其他什么。对于许多目的,你可以使用其中的一个而不是一个数组。如果您需要阵列,请调用范围对象的方法:
(1..10).to_a
您的意思是范围?你可以这样说:
(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]
+1' [* 1..N]'。你有链接解释了为什么它的作品?我一直在寻找,而且'&'也有一段时间了,但我根本找不到这些功能的描述。 – 2011-04-08 16:19:06
它被称为Splat操作符。更多信息:http://theplana.wordpress.com/2007/03/03/ruby-idioms-the-splat-operator/和http://stackoverflow.com/questions/776462/where-is-it-legal-易于使用 - 红宝石图示运营商 – Dogbert 2011-04-08 16:31:05