Döngüden sonra nil döndür ve ayrıca Ruby'de blok olmadıkça
Aug 18 2020
Aşağıdaki gibi çalışan bir kodum var. Döngüden nil
sonra each
ve unless else
aşağıdaki örnekte geri dönmenin daha iyi bir yolu var mı ?
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
I geçmesi gerekir nil
, bu yöntem, adı diğer yöntemlerde, farklı durum vardır, çünkü her bir durumda. Kodu yukarıdaki gibi yazmamın nedeni budur.
Yanıtlar
5 D.SM Aug 18 2020 at 03:05
Ruby'nin bir detect
yöntemi vardır, bu nedenle tüm yönteminiz ile değiştirilebilir
members.detect { |member| member.name == member_name }
Bir kenara, each
boş diziler için iyi çalışır, bu nedenle empty?
, açık döngüyü koruyor olsanız bile sahip olduğunuz kontrol tamamen gereksizdir.
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'