Articles

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 Enumerable
def kollect
new_ary =
self.each do |elem|
new_ary << yield(elem)
end
new_ary
end
end

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.