数组的未定义方法“过滤器”

Undefined method `filter' for array

所以我试图在 repl.it 上解决 class problem/homework,在 ruby 上,这是我得到的错误列表。

ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]

undefined method `filter' for [{:r=>1, :c=>0}, {:r=>0, :c=>1}]:Array
(repl):61:in `escape'
(repl):79:in `maze_escape'
(repl):82:in `<main>'

我无法理解其中的原因,因为 filter 显然是为 class 数组定义的方法,作为 Ruby 核心的一部分,Here

您正在使用 ruby 版本 2.5.5

Array#filteradded to ruby version 2.6.0

但是,该方法只是 Array#select 的别名 - 因此,如果您现在无法升级 ruby 版本,则可以使用它。

注意:您链接到的文档适用于 ruby 版本 2.6.3(即撰写本文时的最新版本)。您可以查看 2.5.5 here.

版本的(几乎-相同的)文档

您在使用 ruby 2.6 吗?filter 仅适用于 ruby 2.6。

如果您使用的是 2.6 之前的版本,请使用 select 而不是 filter