如何确保在ruby工程
结帐这个代码和输出
def lab yield ensure puts 'in ensure block' true end puts lab { puts 'inside inline block'; false } output is #inside inline block #in ensure block #false
我期待在块被执行之后确保将被执行,并且由于确保返回true,所以调用方法的最终输出将是'true'。
保证块的返回值被丢弃 – 这只是一个方法来清理后,function做任何它应该(并返回适当的价值)。 原因是因为它允许你在函数体的不同位置放置几个return
语句(或者raise
语句),而不必在函数的不同位置复制清理代码。
请参阅此博客文章 ,了解如何ensure
以隐式和显式方式返回行为。
似乎你必须明确地返回true, ensure
可能不会自动返回最后一个值。