如何从 Ruby 可枚举中获取列表?

发布于 2024-08-04 18:06:28 字数 213 浏览 13 评论 0原文

我知道 Python 的 list 方法可以使用生成器中的所有元素。 Ruby 中有类似的东西吗?

我知道:

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

我也知道 inject 替代方案。有现成可用的方法吗?

I know of Python's list method that can consume all elements from a generator. Is there something like that available in Ruby?

I know of :

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

I also know of the inject alternative. Is there some ready available method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ˇ宁静的妩媚 2024-08-11 18:06:28

枚举#to_a

Enumerable#to_a

云胡 2024-08-11 18:06:28

如果您想对可枚举中的所有元素进行一些转换,#collect(又名#map)方法会很有帮助:

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

在此示例中,elements 将包含 中的所有元素>可枚举,但每个都转换为字符串。例如,

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

在本例中,elements 将为['1', '2', '3']

以下是 irb 的一些输出,说明了 eachcollect 之间的区别:

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

If you want to do some transformation on all the elements in your enumerable, the #collect (a.k.a. #map) method would be helpful:

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

In this example, elements will contain all the elements that are in enumerable, but with each of them translated to a string. E.g.

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

In this case, elements would be ['1', '2', '3'].

Here is some output from irb illustrating the difference between each and 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"]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文