Ruby社区首选的循环类型是什么? [关闭]

问题描述 投票:0回答:1

自学Python的自我,我参加了以Java教授的计算机科学课程。我注意到for循环是每种语言的黄金标准。然而,尽管遍历该网站和其他教程,但是for循环却无处可寻,尽管它是用Ruby编写的,而且(在我看来)它是非常直接且众所周知的语法。 for循环怎么了?

由于Ruby提供了多种完成任务的方法,因此哪种循环最流行,为什么?

ruby
1个回答
3
投票

Ruby是不寻常的,因为您确实从未使用过for。总有更好的工具来完成这项工作。例如:

n.times do |i|
  # for (i = 0; i < n; ++i) in other languages
end

10.upto(20) do |i|
  # for (i = 10; i < 20; ++i) in other languages
end

a = [ 1, 2, 4, 8, 16 ]
a.each do |v|
  # for (v in a) in other languages
end

a = [ 1, 2, 4, 8, 16 ]
a.map do |v|
  # .map(v => ...) in JavaScript
end

Enumerable模块是Ruby强大功能的源泉,因为它可用于Hash,Array和其他事物,以及可以轻松转换为这些事物的事物,这是一个更大的选项列表。

用其他语言解决的一个复杂问题通常是在Ruby中进行一些简单的转换,而在for循环中却没有。

Enumerable方法的一个重要特性是它们通常会发出Enumerator,可用于将操作链接在一起,如下所示:

10.upto(20).with_index.map do |i, j|
  # Provides pairs like [ 10, 0 ], [ 11, 1 ], etc.
  i + j
end

同时提供值,索引以及将其转换或组合为后续结果的方法,该结果本身可以被迭代,更改或以其他方式转换。

© www.soinside.com 2019 - 2024. All rights reserved.