什么是|变量|语法意思?

时间:2013-10-22 23:24:22

标签: ruby variables syntax block

下面| |所谓的profile是什么意思,它是什么意思,为什么它在do之后呢?我认为do之后是循环块左右。

ticks = get_all[0...MAX].map do |profile|

4 个答案:

答案 0 :(得分:1)

它就像一个foreach,因此profile在每个函数调用中都是一个不同的值,get_all中每个元素一个函数调用。

看到这个:

my_array = [:uno, :dos, :tres]
my_array.each do |item| 
    puts item
end

答案 1 :(得分:1)

它们是定义块的语法的一部分。我想解释它的方式是管道看起来像一个幻灯片,管道内的变量“滑动”到它们下面的代码块中。

管道中的变量基本上可用于块。在迭代的情况下,变量将表示迭代的任何元素。

答案 2 :(得分:0)

我将使用此示例尝试向您解释这个概念。

friends = ["James", "Bob", "Frank"]
friends.each { |friend| puts friend }

James
Bob
Frank

所以在这里,我们有一系列的朋友:詹姆斯,鲍勃和弗兰克。

为了迭代它们,我们在数组上调用#each方法。该方法将从我的数组中的第一个项开始,并在其上调用块。

基本上,我正在迭代的项目被传递给两个管道字符内的变量。您可以将其称为|buddy|并将该块更改为{ |buddy| puts buddy },它仍会执行相同的操作。

答案 3 :(得分:0)

管道字符分隔块定义的参数列表,就像括号分隔方法定义的参数列表一样。所以,在这段代码中:

def foo(bar, baz) end

some_method_that_takes_a_block do |bar, baz| end

括号和管道具有完全相同的目的。