关于ruby中的循环和隐式返回

关于ruby中的循环和隐式返回,ruby,Ruby,我正在读我的密码。守则的一部分是: def funcA(projects) funcB(projects) do |project| #(1) s = funcC(...) #parameter masked s end end 而funcB的定义是: def funcB(projects, &block) #do something end 假设变量projects是一个大小为2的数组 原地循环(1)的作用是什么 funcA将返回什么 原地循环*(1)的

我正在读我的密码。守则的一部分是:

def funcA(projects)
  funcB(projects) do |project| #(1)
    s = funcC(...) #parameter masked
    s
  end
end
funcB
的定义是:

def funcB(projects, &block)
  #do something
end
假设变量
projects
是一个大小为2的数组

  • 原地循环(1)的作用是什么
  • funcA
    将返回什么
  • 原地循环*(1)的作用是什么

    它不是一个循环(至少不是标准的ruby循环)。它只是传递给
    funcB
    的一个块。与
    可枚举#每个
    相同

    funcA将返回什么


    无论什么
    funcB
    返回。

    这里没有循环。这只是一个代码块。谢谢,我现在明白了,这就像将匿名函数传递给funcB一样(1),对吗?顺便说一句,funcB中有“capture(project,&block)”,capture关键字是否意味着执行匿名函数?@realjin:that
    capture
    是另一个可以处理块
    的函数,就像将匿名函数传递给funcB(1),对吗?
    。确切地说,块是匿名函数
    capture
    不是内置的ruby函数,而是用户定义的函数(AFAIK)。@SergioTulentsev哦,看来我需要弄清楚block的含义,它似乎不同于匿名函数,非常感谢!