How can I get a list from Ruby that I can list?

I know a Python method listthat can consume all elements from a generator. Is there something similar in Ruby?

I know:

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

I also know an alternative inject. Is there a ready-made method available?

+3
source share
2 answers

Enumerable#to_a

+9
source

If you want to do some kind of conversion in all elements of your enumerable, the #collect (aka #map) method will be useful:

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

This example elementswill contain all the elements that are in enumerable, but each one is translated into a string. For example.

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"]
+3

Source: https://habr.com/ru/post/1717181/


All Articles