체크 아웃이 코드와 출력루비에서 어떻게 작동하는지 확인
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'가 될 것으로 예상했습니다.
와우. 루비는 굉장합니다. – Trip
@Trip : 당신이 좋아하는 것을 기쁘게 생각합니다 - 전혀 루비 특유의 것이 아닙니다. 예외 처리 기능을 사용하는 대부분의 언어는 동일한 방식으로 작동합니다 (예 : Java, Python). C++은 규칙의 예외이지만 [ScopeGuard] (http://www.drdobbs.com/cpp/184403758)와 같이 소멸자와 함께 할 수있는 몇 가지 강력한 기능이 있습니다. –