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/