Kasse dieses Code gewährleisten und die AusgabeWie funktioniert in 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
Ich habe erwartet, dass nach dem Block dann ausgeführt wird, ausgeführt wird, sicherzustellen, und gibt true zurück, würde die endgültige Ausgabe die Methode des Aufrufs sicherzustellen, da sein 'wahr'.
Wow. Ruby ist großartig. – Trip
@Trip: froh, dass es Ihnen gefällt - es ist überhaupt nicht rubinspezifisch. Die meisten Sprachen mit Ausnahmebehandlung funktionieren auf die gleiche Weise (z. B. Java, Python). C++ ist eine Ausnahme von der Regel, aber es gibt noch mächtigere Dinge, die Sie mit Destruktoren machen können, wie zum Beispiel [ScopeGuard] (http://www.drdobbs.com/cpp/184403758). –