7

listジェネレーターからすべての要素を消費できるPythonのメソッドを知っています。Rubyで利用できるようなものはありますか?

私は知っています:

elements = []
enumerable.each {|i| elements << i}

私もinject代替案を知っています。すぐに利用できる方法はありますか?

4

2 に答える 2

15

Enumerable#to_a

于 2009-09-08T18:51:28.800 に答える
3

列挙可能な要素のすべての要素に対して何らかの変換を行いたい場合は、#collect(別名#map)メソッドが役立ちます。

elements = enumerable.collect { |item| item.to_s }

この例でelementsは、にあるすべての要素が含まれますenumerableが、それぞれが文字列に変換されます。例えば

enumerable = [1, 2, 3]
elements = enumerable.collect { |number| number.to_s }

この場合、elementsはになります['1', '2', '3']

との違いを示すirbからの出力を次に示しeachますcollect

irb(main):001:0> enumerable = [1, 2, 3]
=> [1, 2, 3]
irb(main):002:0> elements = enumerable.each { |number| number.to_s }
=> [1, 2, 3]
irb(main):003:0> elements
=> [1, 2, 3]
irb(main):004:0> elements = enumerable.collect { |number| number.to_s }
=> ["1", "2", "3"]
irb(main):005:0> elements
=> ["1", "2", "3"]
于 2009-09-09T15:42:50.693 に答える