【发布时间】:2017-02-04 22:41:47
【问题描述】:
我刚刚学习 Ruby,并且无法理解所谓的“块参数”(可以附加到方法调用)的意义。
AFAICT,“块参数”的工作方式与其他编程语言(或 Ruby 本身)中的任何普通回调参数一样,但在最多只能附加一个“块参数”到方法调用,而方法/函数可以设计接受的回调参数的数量没有上限。
(如果需要澄清,我所说的“回调”是指一个函数 F 另一个函数 G 接收(作为其参数之一)并依次接收电话。)
我认为必须有 一些事情可以用块参数来做,而 就像用回调一样容易(否则,很难证明支持块参数的特殊语法),但我无法弄清楚这个“东西”可能是什么。
我的问题是:
使用常规回调无法完成的“块参数”可以做什么?
编辑:较早的评论(现已删除)说块参数更好地描述为“闭包”而不是“回调”。在我的书中,闭包是回调的一个特例。如果愿意,可以在我的帖子中将“回调”替换为“关闭”。帖子的问题仍然存在(当然,除非“块参数”是在 Ruby 中创建闭包的唯一方法,但如果是这种情况,它本身会提出比它回答的问题更多的问题)。
【问题讨论】:
-
好的,yehuda 给出了一个详细的例子来说明它们的不同之处yehudakatz.com/2012/01/10/javascript-needs-blocks 但实际上我认为这在大多数情况下并不重要
标签: ruby