4

因此,我正在尝试用 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

4

2 回答 2

11

您正在使用 ruby​​ 版本2.5.5

Array#filter添加到 ruby​​ 版本2.6.0中。

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

注意:您链接到的文档适用于 ruby​​ 版本2.6.3(即撰写本文时的最新版本)。您可以在此处查看版本的(几乎相同的)文档。2.5.5

于 2019-07-18T09:45:34.330 回答
4

你用的是红宝石2.6吗?filter仅在 ruby​​ 2.6 中可用。

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

于 2019-07-18T09:47:53.827 回答