2015-10-05 62 views
-2

有人可以按照以下代码分解k.scan(fish).join == query的每个部分并告诉我它做了什么吗?Ruby语法包括“scan”,“join”和“==”

@entries = {"fish" => "aquatic animal", "fiend" => "wicked person"} 

def find(fish) 
    @entries.select { |k, v| k.scan(fish).join == query} 
end 
+0

什么是查询?你传递给find方法的值是什么?你读过'scan ''和'join'?你有没有尝试过把它输入到IRB中,看看你在尝试什么时返回的值?我们需要知道你尝试了什么以及你正在发生什么。 –

回答

1
k.scan(fish) 

String#scan功能搜索匹配于给定的参数,在这种情况下fish并返回与它找到的所有比赛的数组。

k.scan(fish).join 

Array#join连接数组元素(其扫描功能之前得到)成一个字符串。

那么结果(串)正在相比==query变量(不知道在哪里的“查询”变量来从 - 它不是在你的代码中定义。

如果字符串等于查询,然后哈希对({"fish" => "aquatic animal", "fiend" => "wicked person"})将被保留(这就是选择功能所做的)