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/

Kirim email ke