在Python中,我们可以在枚举上使用list()
方法来创建基于枚举器项的有序列表。你将如何在Ruby可枚举中实现这一目标?
目前我正在使用它,但感觉有点黑客攻击:
data = []
e = # .. enumerable ..
e.each do |d|
data << d
end
答案 0 :(得分:1)
你可以做数组(列表):
(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]
其他 iterables
相同my_array.to_a
答案 1 :(得分:1)
试试这个: -
e = # .. enumerable ..
e.to_a
或
e.entries
答案 2 :(得分:0)
如果你想要聪明,你也可以使用其他几种可枚举的方法。例如:
enumerable.map { | x | x }
enumerable.select { true }
...或我个人最喜欢的,
enumerable.inject( [ ] ) { | c, i | c + [ i ] }
答案 3 :(得分:0)
在Python list("a")
中产生一个列表;在Ruby "a".to_a
中出错。
splat运算符称为'unsplattable object results in the object itself. So maybe this is more equivalent to Pythons
list`:
a = ("a".."f").each_cons(2)
[*a] #=> [["a", "b"], ["b", "c"], ["c", "d"], ["d", "e"], ["e", "f"]]
[*"a"] #=> ["a"]