Enumerable#each
ve Enumerable#map
arasındaki fark, alıcının veya eşlenen sonucun geri dönüp dönmediğidir. Alıcıya geri dönmek önemsizdir ve genellikle each{...}.another_method
gibi each
'dan sonra bir yöntem zincirine devam etmeniz gerekmez (muhtemelen böyle bir durumla karşılaşmadım. Alıcıya geri dönmek isteseniz bile bunu tap
ile yapabilirsiniz). Bu yüzden, Enumerable#each
'un kullanıldığı tüm veya çoğu durumda, Enumerable#map
ile değiştirilebilir. Yanlış mıyım? Eğer haklıysam, each
'un amacı nedir? map
, each
'dan daha yavaş mı?Tüm "her" ifadesi "map" ile değiştirilemez mi?
Düzenleme: Sana dönüş değeri ile ilgilenen olmadığında each
kullanmak yaygın bir uygulama olduğunu biliyoruz. Bu tür bir uygulamanın var olup olmadığıyla ilgilenmiyorum, ancak bu tür uygulamanın sözleşmenin bakış açısından başka bir anlam kazanıp yaratmadığıyla ilgileniyorum.
Anlamalısınız ki 'her', 'haritanın' değil, 'Her' 'Enumerable'ın temel bir parçasıdır. ["Sınıf, her biri ',' koleksiyonunun ardışık üyelerini veren bir yöntem sağlamalıdır."] (Http://ruby-doc.org/core-1.9.3/Enumerable.html). –
@muistooshort Bunun farkında değildim. Bunu düşüneceğim. Teşekkürler. – sawa
"map" i "her" ve sonra "her" açısından "map" olarak uygulamayı deneyin, bu size biraz bilgi verebilir. –