这些块究竟代表什么?

时间:2014-04-05 18:08:03

标签: ruby

Ruby的绝对新手。我不太了解|animal|部分。有人可以向我解释一下吗?

ark = ["Cat", "dog", "pig", "goat"]
ark.each do |animal|
    puts animal
end

1 个答案:

答案 0 :(得分:2)

在其他语言中,语法可能如下所示:

ark = ["Cat", "dog", "pig", "goat"];
ark.each(function (animal) { puts animal; });

那清除了吗?它是匿名函数的语法。如果你不熟悉这个概念,那怎么样?

function putAnimal(animal) {
    puts animal;
}

ark = ["Cat", "dog", "pig", "goat"];
ark.each(putAnimal);

|animal|是匿名函数的参数列表。非常粗略地说,Ruby的常见function (arg) { ... }语法是do |arg| ... end