所以我试图用ruby解决repl.it上的类问题/作业,这是我得到的错误列表。
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显然是为Array类定义的一种方法,它是Ruby核心Here
的一部分答案 0 :(得分:5)
您使用的是红宝石版本2.5.5
。
Array#filter
是added to ruby version 2.6.0
。
但是,该方法只是Array#select
的别名-因此,如果您现在无法升级ruby版本,则可以使用它。
注意:链接到的文档适用于红宝石版本2.6.3
(即撰写本文时的最新版本)。您可以查看版本2.5.5
here的(几乎相同的)文档。
答案 1 :(得分:1)
您是否使用ruby 2.6?filter
仅在ruby 2.6中可用。
如果您使用的是2.6之前的版本,请使用select
代替filter
。