【发布时间】:2013-05-29 17:49:37
【问题描述】:
我可以像这样向函数传递参数:
func 1, 2, 3
或者我可以使用如下括号:
func(1, 2, 3)
后来我了解了像 list.each 这样的函数,我通过(不确定这是否真的发生了)一个块来操作每个元素:
list.each {|x| puts x}
我假设这只是将块作为参数传递给 each 函数,但事实并非如此,因为:
list.each( {|x| puts x} )
不工作。
当我看到这一点时我意识到了这一点:
5.upto(9) {|x| puts x}
如果块只是一个参数,这根本没有意义。
这里发生了什么?您可以向我指出任何资源来帮助解释这一点,也许还有其他不立即显而易见的结构?
【问题讨论】:
-
这是一种专门为将块传递给函数而创建的特殊语法。对于每个函数调用,您可以在常规参数列表之外传递一个块。该块仍附加到被调用函数上下文中的参数列表中。
-
@Matt - 既然你正在学习 Ruby,请查看:codecademy.com/tracks/ruby - 对于任何想要学习 ruby 语言核心基础的人来说,这都是非常好的资源
-
@David,我就是这样! :)
-
@Matt pro 坚持下去!