Ruby implementálása' s gyűjtési módszer
Ruby gyűjtési módszere
Ruby collect
a módszer a felsorolható mixin része; egy mixin, amely nagyon hasznos és hatékony módszereket kínál gyűjtési objektumokhoz. collect
egy olyan módszer, amelyet állandóan használok, és nemrégiben írtam a cikkemben, amely a felsorolásokkal dolgozik: négy hatékony gyűjtési módszer.
collect
lehetővé teszi a gyűjteményobjektum minden elemének (tömb, Hash vagy saját objektum) átalakítását valami mássá, végül egy tömböt.
Íme egy egyszerű példa arra, hogy egész számok tömbjét vesszük, és mindegyiket megszorozzuk 2-vel.
.collect{ |num| num * 2 }#
A gyűjtési módszer újbóli végrehajtása
sajátcollect
módszert akartam létrehozni, hogy lássam, hogyan valósul meg. Kiderül, hogy elég könnyen, körülbelül 5 sornyi kódban történik. Azt kell mondanom, hogy az egyetlen felhasználási eset, amelyet nem fedek le, az, amikor egyetlen blokkot sem adnak át a módszernek, ebben az esetben általában egy számlálót adnak vissza.
hozzáadjuk az új kollect
(így a nevek nem ütköznek) a felsorolható modulhoz. A gyűjteményünkön keresztül a blokkot minden elemre alkalmazzuk, hozzáadva a visszaadott eredményt egy új tömbhöz, amelyet létrehozunk.
module Enumerabledef kollectnew_ary =self.each do |elem|new_ary << yield(elem)endnew_aryendend
Ha ezt összehasonlítjuk a Ruby forráskódjával, akkor lényegében ugyanezt teszi, de sokkal egyszerűbb, mert magával a Ruby-val dolgozunk, nem pedig a C-vel.
az új gyűjtési módszerünket használva
már csak azt kell megnézni, hogy a kollect
módszer valóban működik-e! Ki akartam próbálni mind a normál blokk szintaxist, mind a rövid kéz használatát &:method_name szintaxis, mindkét munka biztosítása érdekében.
nagyszerű! Mindkét esetben veszi a neveket a tömbben, és átalakítja őket nagybetűs.