0
respostas

Sintaxe de métodos

Olá, preciso de uma ajuda para entender esses dois códigos que deram um nó na minha cabeça. Podem me explicar detalhadamente o que faz exatamente cada um deles? Por que foi trocado o método sort por select? Qual a função do operador '<=>'? Vai ser criado uma enpécie de array para que o método .last funcione?

def livro_que_mais_vendeu_por(&campo)
    @vendas.sort {|v1,v2| quantidade_de_vendas_por(v1, &campo) <=> quantidade_de_vendas_por(v2, &campo)}.last
end
def que_mais_vendeu_por(tipo, &campo)
    @vendas.select { | l | l.tipo == tipo}.sort {|v1,v2| quantidade_de_vendas_por(v1, &campo) <=> quantidade_de_vendas_por(v2, &campo)}.last
end

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software