首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby块中使用“return”

在Ruby块中使用“return”
EN

Stack Overflow用户
提问于 2010-02-24 19:15:41
回答 6查看 64.9K关注 0票数 93

我正在尝试使用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,但结果是相同的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2325471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档