임베디드 스크립팅 언어로 Ruby 1.9.1을 사용하여 "최종 사용자"코드를 Ruby 블록에 작성하려고합니다. 이것의 한 가지 문제는 사용자가 블록에서 'return'키워드를 사용할 수 있기를 원하므로 암시 적 반환 값에 대해 걱정할 필요가 없습니다. 이를 염두에두고 다음과 같이 할 수 있기를 바랍니다.
def thing(*args, &block)
value = block.call
puts "value=#{value}"
end
thing {
return 6 * 7
}
위의 예에서 'return'을 사용하면 LocalJumpError가 발생합니다. 나는 이것이 문제의 블록이 람다가 아니라 Proc이기 때문이라는 것을 알고 있습니다. 'return'을 제거하면 코드가 작동하지만이 시나리오에서는 'return'을 사용할 수 있기를 원합니다. 이것이 가능한가? 블록을 람다로 변환하려고 시도했지만 결과는 동일합니다.