Harita arasındaki fark Ruby ve toplamak?
Bu Google'dan araştırdım ve çelişkili görüşler - aslında map
bir işin ve Ruby/Rails Bir dizide collect
yapmak arasında herhangi bir fark var mı? / yamalı var
docs herhangi bir tavsiye gibi görünmüyor, ama belki yöntem veya performans farkı var mıdır?
CEVAP
Aslında map
rb_ary_collect
enum_collect
C olarak uygulanır (örn. fark yok başka bir numaralama üzerinde bir dizi map
arasında bir fark, ama map
collect
) arasında fark yoktur.
Neden map
collect
hem de Ruby var mı?map
işlevi, farklı dillerde birçok adlandırma kuralları vardır. 21**:
Harita işlevi kökenli fonksiyonel programlama diller ama bugün desteklenen (veya olabilir tanımlı) birçok prosedürel, nesne tabanlı ve çok paradigma dil olarak C 'nin Standart Şablon Kütüphanesi, denir
transform
C# (3.0)'nın SERİ kütüphane, sunulan bir uzantısı yöntemi denirSelect
. Göster de Perl, Python ve Ruby gibi üst düzey dillerde sık kullanılan bir işlemdir; operasyonumap
denir bu dilleri üç.Göster ** 14 bir diğer adı da Ruby sağlanan (Smalltalk)[vurgu benim]. Common Lisp göster-gibi fonksiyonları bir aile sağlar; bir davranış, burada anlatılan karşılıkmapcar
(araba erişim ARABA operasyonunu kullanarak belirtir).
Ruby, Smalltalk dünyadan programcılar için bir takma ad daha çok evinizde hissetmenizi sağlar.
Neden diziler ve numaralamalar için farklı bir uygulama var mı?Bir numaralama bir genel yineleme yapısı, başka bir deyişle, yok olan Ruby tahmin edebilirsiniz ne bir diğer etmen de olabilir (tanımlayabilirsiniz sonsuz çeteleler, Prime örnek). Bu nedenle bir fonksiyonu birbirini izleyen her bir elemanı (genellikle bu each
yöntem olacaktır) almak için arayın.
Diziler kendi performansını optimize etmek için makul yani en yaygın koleksiyon. Ruby dizileri nasıl çalıştığı hakkında çok şey bildiği için each
aramak zorunda değil ama sadece basit kullanabilir önemli ölçüde daha hızlı olan pointer manipulation.
Benzer iyileştirmeleri zip
count
gibi bir Dizi yöntemler için bir dizi var.
Ve Ruby dahil ihtiyaç arasındaki fark ...
'DateTime, zaman Damgası, Zaman v...
Arasındaki fark vardır ve genişletmek ...
Ruby, exec, sistem ve %arasındaki Fark...
Require_relative arasındaki fark Ruby ...