Kembalikan nil demi loop dan juga di blok kecuali di Ruby
Aug 18 2020
Saya memiliki kode yang berfungsi seperti di bawah ini. Apakah ada cara yang lebih baik untuk kembali nil
setelah each
loop dan unless else
pada contoh di bawah ini?
def find_member(member_name)
unless members.empty?
members.each do |member|
if member.name == member_name
return member
end
end
nil
else
nil
end
end
Saya harus lulus nil
dalam setiap kasus karena ada kondisi berbeda dalam metode lain di mana metode ini dipanggil. Itulah alasan mengapa saya menulis kode seperti di atas.
Jawaban
5 D.SM Aug 18 2020 at 03:05
Ruby memiliki sebuah detect
metode, jadi seluruh metode Anda dapat diganti dengan
members.detect { |member| member.name == member_name }
Selain itu, each
berfungsi dengan baik untuk array kosong, oleh karena itu empty?
pemeriksaan yang Anda miliki sama sekali tidak diperlukan bahkan jika Anda menyimpan loop eksplisit.
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'