SORU
10 Mart 2011, PERŞEMBE


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
10 Mart 2011, PERŞEMBE


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 denir Select. Göster de Perl, Python ve Ruby gibi üst düzey dillerde sık kullanılan bir işlemdir; operasyonu map 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ık mapcar (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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • magnum33563

    magnum33563

    8 NİSAN 2011
  • SaMmM123

    SaMmM123

    3 Mayıs 2006
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008