1
resposta

Duvida em um metodo

def <<(livro) # não compreendi o que isso faz?
    push(livro) 
    if @maximo_necessario.nil? || @maximo_necessario < size #size não deveria ter livro.size?
      @maximo_necessario = size
    end
  end
1 resposta

Oi Éder, no Ruby, você pode ter métodos (funções) com nomes usando caracteres especiais. Quando se faz isso, podemos usar o método como se fosse um operador. Por exemplo, podemos somar números assim:

1 + 2

ou assim:

1.+(2)

O sinal de adição na verdade é um método na classe de números do Ruby.

No caso do código que você postou, digamos que ele esteja escrito em uma classe que se chama ListaDeLivros. Um objeto dessa classe pode usar o método assim:

objeto.<<(livro)

ou assim:

objeto << livro

Fica parecendo que estamos usando o mesmo operador dos arrays, quando na verdade, estamos chamando o método que está dentro da classe (na verdade os arrays também funcionam assim )

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