Saya mencoba menggunakan Ruby 1.9.1 untuk bahasa skrip yang disematkan, sehingga kode "pengguna akhir" ditulis dalam blok Ruby. Satu masalah dengan ini adalah saya ingin pengguna dapat menggunakan kata kunci 'kembali' di blok, jadi mereka tidak perlu khawatir tentang nilai pengembalian implisit. Dengan pemikiran ini, inilah hal yang ingin saya lakukan:
def thing(*args, &block)
value = block.call
puts "value=#{value}"
end
thing {
return 6 * 7
}
Jika saya menggunakan 'return' dalam contoh di atas, saya mendapatkan LocalJumpError. Saya sadar bahwa ini karena blok yang dimaksud adalah Proc dan bukan lambda. Kode berfungsi jika saya menghapus 'kembali', tetapi saya benar-benar lebih suka dapat menggunakan 'kembali' dalam skenario ini. Apakah ini mungkin? Saya sudah mencoba mengonversi blok ke lambda, tetapi hasilnya sama.