[ CATEGORY ]

# ruby_

1 篇

ruby 分类下共有 1 篇编程实战文章,涵盖常见问题排查、代码示例与实践经验。

ruby●

block、proc 和 lambda 不是一回事

第一次遇到 LocalJumpError: unexpected return 的时候,代码看起来毫无问题:一个方法里创建了 Proc,存进实例变量,稍后再调用。可只要这个 Proc 里写了 return,调用时就会炸。把 proc 改成 lambda,一切又恢复正常。

这不是玄学,而是 Ruby 里 block、proc、lambda 三者在「参数检查」和「控制流」上的语义差异。搞清楚这几点,很多看似奇怪的行为都能解释。

先理清关系:block 不是对象

Ruby 里只有 block 是语法结构,不是对象。它只能跟在方法调用后面,通过 yield 执行:

[ 查看全文 ]→
© 2026 AI 助手 · 码日新 · 每日文章_