ruby - 数组的未定义方法 `each '

标签 ruby arrays each

我正在尝试遍历包含测试用例类的各种实例的数组。根据 RubyDoc,数组应该有一个 each 函数:

Like all classes that include the Enumerable module, Array has an each method, which defines what elements should be iterated over and how.

以下代码有效:

@array = []
(0..20).to_a.each{ |i|
  @array.push(i)
}
@array.each { |i|
    puts i
}

但这个不是:

@violation_array = []
(0..2).to_a.each{ |i|
  @violation_array.push(Violation.new("violation#{i}"))
}
@violation_array.each { |violation|
  puts violation
}

并产生这个错误:

NoMethodError: undefined method `each ' for #<Array:0x007f3aa232ece8>

@violation_array.inspecteach 之前的值是:

[#<Violation:0x007f71e4965e30 @key="violation0">, #<Violation:0x007f71e4965bb0 @key="violation1">, #<Violation:0x007f71e49657f0 @key="violation2">]

知道为什么这个数组缺少 each 函数吗?

编辑:我在多个设置(python、ruby、markdown)中遇到了这个问题。 2 年后我终于明白了:我总是在输入 space 的同时仍然按住需要它的前一个或后一个字符的 AltGr。这形成了一个不可分割的空间,参见 How to disable non-breaking space with altgr+space寻求解决方案)。

最佳答案

我认为错误消息可能很有启发性。方法名称中有一个空格,因此不存在的方法是 "each "。不知何故,我认为您的代码中出现了一些虚假的空白。数组上肯定“each”方法,但不是“each”方法。

关于ruby - 数组的未定义方法 `each ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846440/

相关文章:

ruby - 安装 RedCloth-4.2.9 安装 Linux 时无法构建 gem native 扩展

Java读取.txt文件到数组

程序运行时Javascript代码显示未定义

jquery - 如何限制jquery中json数据的each循环?

Ruby:使用命名键将数组转换为散列的最简单方法?

ruby-on-rails - 如何修改 Rails datetime_select 帮助器的输入类型?

ruby - 如何分配表达式中的元素?

javascript - 将单个对象提取为一个对象,而不是作为一个对象的数组,Javascript

jquery - 使用Jquery如何区分对象值是数组还是只是值..?

jquery - 如何循环 jQuery 序列化的数据,然后填充 div?