Tôi đang cố gắng sử dụng Ruby 1.9.1 cho một ngôn ngữ kịch bản nhúng để mã "người dùng cuối" được viết trong một khối Ruby. Một vấn đề với điều này là tôi muốn người dùng có thể sử dụng từ khóa 'return' trong các khối, vì vậy họ không cần phải lo lắng về các giá trị trả về ngầm định. Với suy nghĩ này, đây là loại điều tôi muốn có thể làm:
def thing(*args, &block)
value = block.call
puts "value=#{value}"
end
thing {
return 6 * 7
}
Nếu tôi sử dụng 'return' trong ví dụ trên, tôi nhận được lỗi LocalJumpError. Tôi biết rằng điều này là do khối được đề cập là một Proc chứ không phải lambda. Mã hoạt động nếu tôi loại bỏ 'return', nhưng tôi thực sự muốn có thể sử dụng 'return' trong trường hợp này. Điều này có khả thi không? Tôi đã thử chuyển đổi khối thành lambda, nhưng kết quả vẫn vậy.