Articles

Prováděcí Ruby'y Sbírat Metoda

Ruby je Sbírat metoda

Ruby collect metoda je součástí Enumerable mixin; mixin, který poskytuje velmi užitečné a výkonné způsoby výběru objektů. collect je metoda, používám celou dobu a nedávno napsal o tom ve svém článku Pracuje s enumerables: Čtyři výkonné metody sběru.

collect umožňuje transformovat každý prvek kolekce objektů (Array, Hash, nebo vlastní objekt) na něco jiného, končí s Pole.

zde je jednoduchý příklad, jak vzít pole celých čísel a vynásobit každé z nich 2.

.collect{ |num| num * 2 }
#

opětovné zavedení metody Collect

chtěl jsem vytvořit vlastní metodu collect, abych viděl, jak je implementována. Ukazuje se, že se to děje poměrně snadno, asi v 5 řádcích kódu. Měl bych říct, že jeden use-case nemyslím, kryt je, když není blok, je předán do metody, v takovém případě Výčtu je obvykle vrácena.

přidáme náš nový kollect (takže názvy nejsou v rozporu) do výčtu modulu. Když procházíme naší sbírkou, použijeme blok na každý prvek a přidáme vrácený výsledek do nového vytvořeného pole.

module Enumerable
def kollect
new_ary =
self.each do |elem|
new_ary << yield(elem)
end
new_ary
end
end

Pokud porovnáme to, že Ruby je zdrojový kód, je to v podstatě dělá to samé, ale je mnohem jednodušší, protože pracujeme s Ruby sám, a ne C.

Pomocí naší nové Sbírat metoda

Nyní vše, co zbývá, je zjistit, jestli kollect metoda skutečně funguje! Chtěl jsem to zkusit pomocí normální syntaxe bloku, ale také krátké ruky &:syntaxe názvu metody, aby byla zajištěna práce obou.

skvělé! V obou případech vezme jména v poli a převede je na velká písmena.