Ruby或Rails数组迭代语法

时间:2016-02-05 21:47:47

标签: ruby-on-rails arrays ruby iteration

我遇到一种方法,程序提取对象的name属性,发现语法有点特殊。这是处理JSON响应的结果。

我们的JSON响应如下=

[{"id"=>9, "name"=>"Baked Potato w/ Cheese", "instructions"=>nil}, 
{"id"=>12, "name"=>"Baked Brussel Sprouts", "instructions"=>nil}]

results = JSON.parse(response.body)

def extract_name
  ->(object) { object["name"] }
end

results.map(&extract_name)

所以我理解results.map(&extract_name)会返回JSON对象的name,我只是不了解。

我不熟悉->(object) { object["name"] }语法。是否有其他简写方法可以帮助我更好地了解这种语法?

1 个答案:

答案 0 :(得分:2)

箭头->是创建lambas的简短语法。请参阅“What do you call the -> operator in Ruby?”。

另一种方法可能是以下代码段:

results.map { |object| object["name"] }