数组的未定义方法“过滤器”
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#filter
是 added 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
。
所以我试图在 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#filter
是 added 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
。