7
在Ruby块中使用“返回”
我正在尝试将Ruby 1.9.1用于嵌入式脚本语言,以便将“最终用户”代码写入Ruby块中。与此相关的一个问题是,我希望用户能够在块中使用'return'关键字,因此他们不必担心隐式的返回值。考虑到这一点,这是我想做的事情: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 如果在上面的示例中使用“ return”,则会收到LocalJumpError。我知道这是因为所讨论的块是Proc而不是lambda。如果删除“ return”,该代码将起作用,但在这种情况下,我真的更希望能够使用“ return”。这可能吗?我尝试将块转换为lambda,但结果是相同的。