【发布时间】:2015-08-16 01:17:46
【问题描述】:
Ruby 支持for i in a 语法,但没有人真正使用它。 Ruby 的设计原则之一是它的可读性,我发现
for i in a
...
end
比
更具可读性(并且更容易输入)a.each do |i|
...
end
为什么不是首选?其他人不也觉得它更具可读性吗?是否出于一致性原因,例如与 each_with_index 和变量范围等其他函数的关系?
【问题讨论】:
-
我认为您应该先阅读有关 ruby 块的信息。还有这个问题:stackoverflow.com/questions/3294509/for-vs-each-in-ruby
-
一旦你训练自己阅读它们,你就会发现它们更具可读性。对我来说,这两种语法似乎都没有任何固有的优势。除此之外,主要是意见,但
.each语法比for与其他Ruby 习惯用法更符合。看看Array上的其他迭代器,您会发现不仅.each适合它们,而且您会经常使用其他迭代器,因为它在处理大批。你很少只是想设置一个迭代器。 -
@konart 我有,我想我理解这些差异。这就是我在问题中所说的“变量范围”的意思。这是不使用它的唯一原因吗?
-
@Sebastian Carroll 的一致性也是如此。
-
我使用
Enumerable#each是因为它只是一个方法调用,而不是另一种语法,而且更OO。
标签: ruby for-loop coding-style iterator