Ruby 代码块:延迟执行与应用实践
1. 执行环绕技术与代码块概述
执行环绕技术能帮助处理那些需要在其他代码前后频繁执行的代码。其核心思想是创建一个接受代码块的方法,在该方法内部,先执行需要在代码块执行前运行的代码,再调用代码块,最后执行需要在代码块执行后运行的代码。
创建执行环绕方法并不复杂,但需要注意方法命名和参数处理。命名时要考虑方法的使用场景,同时要特别关注传入方法的参数以及在方法和代码块之间传递的参数。
2. 显式代码块
在 Ruby 中,我们之前使用 block_supplied? 来判断是否有代码块传入方法,使用 yield 来触发代码块。这种方式将代码块作为方法调用的隐式参数,只有 yield 和 block_supplied? 能访问。
然而,还可以通过在参数列表末尾添加一个前缀为 & 的参数,将代码块转换为普通参数。捕获代码块后,可以通过调用其 call 方法来运行。示例代码如下:
def run_that_block( &that_block )
puts "About to run the block"
that_block.call
puts "Done running the block"
end
判断是否有代码块传入也很简单,只需检查代码块参数的值是否为 nil
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



