結帳這個代碼和輸出如何確保在紅寶石作品
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,調用該方法的最終輸出會'真正'。
哇。 Ruby很棒。 – Trip 2012-05-08 18:53:54
@Trip:很高興你喜歡它 - 它根本不是特定於ruby的。大多數具有異常處理的語言都以相同的方式工作(例如Java,Python)。 C++是規則的一個例外,但是可以使用析構函數做一些更強大的事情,比如[ScopeGuard](http://www.drdobbs.com/cpp/184403758)。 – 2012-05-08 20:07:52