显然在Lisp中,当你编写一个没有参数的块/ lambda时,单词“it”将传递给块的值。
这似乎很优雅;我喜欢;我想要它在Ruby中。有没有办法让它发挥作用?
3.times { p it }
应打印“0 1 2”
显然,我可以在包含method_missing的上下文中评估一个块,该方法返回一个值:it(或者def object#it)。但它应该返回什么价值?如果我对块“产生42”,并且声明了块没有参数,是否有任何通用的方法来恢复值42?
(这个问题的原始版本询问了C#,因此评论。显然C#没有这个,但Lisp确实如此。)