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