有没有办法在Ruby块中实现隐式“it”,比如在Lisp中?

时间:2014-04-24 07:41:24

标签: ruby metaprogramming

显然在Lisp中,当你编写一个没有参数的块/ lambda时,单词“it”将传递给块的值。

这似乎很优雅;我喜欢;我想要它在Ruby中。有没有办法让它发挥作用?

3.times { p it }

应打印“0 1 2”

显然,我可以在包含method_missing的上下文中评估一个块,该方法返回一个值:it(或者def object#it)。但它应该返回什么价值?如果我对块“产生42”,并且声明了块没有参数,是否有任何通用的方法来恢复值42?

(这个问题的原始版本询问了C#,因此评论。显然C#没有这个,但Lisp确实如此。)

0 个答案:

没有答案