ruby - 为什么 `for i in a` 不是惯用的 Ruby?

标签 ruby for-loop coding-style iterator

<分区>

Ruby 支持 for i in a 语法,但没有人真正使用它。 Ruby 的设计原则之一是它的可读性,我发现

for i in a
  ...
end

更具可读性(也更容易输入)
a.each do |i|
  ...
end

为什么不推荐?其他人不也觉得它更具可读性吗?是否出于一致性原因,例如与 each_with_index 和变量作用域等其他函数的关系?

最佳答案

对我来说,这是统一的语法。当我要对数组 a 做一些事情时,我只是开始输入 a.。我要做什么?筛选? a.select;确定尺寸? a.size。迭代? a.each

迭代数组没什么特别的,不需要特殊的语言结构。此外,没有直接 block 的 each 会生成枚举器,它可以与其他方法链接。

然后,Ruby 确实有一个很好的 for i in a 循环。因此,如果您更习惯使用 for 循环:无论如何,请使用 for 循环。

关于ruby - 为什么 `for i in a` 不是惯用的 Ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30592835/

相关文章:

php - 比嵌套 if-else 更好的解决方案?

Java 8 如何使用 lambda 表达式简化 for 循环

c - 需要接受用户输入并在最后全部输出

ruby-on-rails - Rails/Bootstrap - Flash 通知 :success is now red and not green?

ruby-on-rails - 机架安装应用程序与 sinatra 应用程序的 rails 安装

c++ - 编译器 C++ 中的 fstream 错误

c++ - 这两种定义方法有区别吗?

JavaScript:以函数式方式重新组织 Canvas 渲染

ruby - 功能中的 Cucumber HTML 标记

ruby-on-rails - Rails 3 使用 Ajax 计算行总数