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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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
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 + 2ou 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 << livroFica 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 )