数组的未定义方法“ filter”

时间:2019-07-18 09:22:54

标签: ruby repl.it ruby-2.5

所以我试图用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

的一部分

2 个答案:

答案 0 :(得分:5)

您使用的是红宝石版本2.5.5

Array#filteradded 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