Articles

a Implementação de Ruby's Coletar Método

Ruby Recolher método

Ruby collect método é parte do Enumerável mixin; um mixin que proporciona muito úteis e eficientes métodos para objetos de coleção. collect é um método que eu uso todo o tempo e recentemente escreveu sobre o meu artigo trabalhando com enumerables: quatro poderosos métodos de coleção.

collect permite que você transforme cada elemento de seu objeto de coleção (Array, Hash, ou o seu próprio objeto) em algo mais, terminando com uma Matriz.

Aqui está um exemplo simples de pegar uma matriz de inteiros e multiplicar cada um deles por 2.

.collect{ |num| num * 2 }
#

re-implementando o método de recolha

i wanted to create my own collect method to see how it is implemented. Acontece que é feito muito facilmente, em cerca de 5 linhas de código. Eu devo dizer que o único caso de uso que eu não cobrir é quando nenhum bloco é passado para o método, nesse caso um enumerador é geralmente devolvido.

vamos adicionar o nosso novo kollect (para que os nomes não entrem em conflito) ao módulo enumerável. Em Looping através de nossa coleção, vamos aplicar o bloco para cada elemento, adicionando o resultado retornado a uma nova matriz que está sendo criada.

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

Se a gente comparar este Ruby, código-fonte, ele basicamente faz a mesma coisa, mas é muito mais simples, porque estamos trabalhando com Ruby em si, e não C.

Usando o nosso novo método de Coletar

Agora tudo o que resta é ver se o kollect método realmente funciona! I wanted to try it using both the normal block syntax, but also the short-hand &:method_name sintaxe, para garantir que ambos funcionam.óptimo! Em ambos os casos, ele pega os nomes na matriz e converte-os em maiúsculas.