howdy folks
ini bisa:
bar = [1, 2].collect do |i|
i == 1 and raise "error" rescue next nil
i == 2 and "ok"
end
tapi ini syntax error:
foo = %w(foo bar baz).collect do |fn|
fn = "#{fn}.txt"
fh = File.open(fn, 'r') rescue next nil
"content of #{fn}"
end
jika tidak ada assignment "fh = " maka jalan (tapi jadi tidak berguna
karena fh mau dipake).
pertanyaanya: kenapa jika ada assignment jadi error?
bentuk yg lebih legal tentu saja bisa:
foo = %w(foo bar baz).collect do |fn|
fn = "#{fn}.txt"
begin
fh = File.open(fn, 'r')
rescue
next nil
end
"content of #{fn}"
end
tapi jelek, terlalu bertele2. (mungkin wajar2 saja buat orang PHP atau java
yg udah biasa bertele2).
ada cara utk menulis bentuk panjang ini jadi ringkas?
rgds,
Edwin.
________________________________________________________
Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi
Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/