list
ジェネレーターからすべての要素を消費できるPythonのメソッドを知っています。Rubyで利用できるようなものはありますか?
私は知っています:
elements = []
enumerable.each {|i| elements << i}
私もinject
代替案を知っています。すぐに利用できる方法はありますか?
list
ジェネレーターからすべての要素を消費できるPythonのメソッドを知っています。Rubyで利用できるようなものはありますか?
私は知っています:
elements = []
enumerable.each {|i| elements << i}
私もinject
代替案を知っています。すぐに利用できる方法はありますか?
Enumerable#to_a
列挙可能な要素のすべての要素に対して何らかの変換を行いたい場合は、#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"]