class Estoque
attr_reader :livros
#outros métodos da classe
end
No exercício declara como attr_reader, depois conseguimos adicionar e remover livros? Pq não deve ser attr_writer ou attr_accessor?
class Estoque
attr_reader :livros
#outros métodos da classe
end
No exercício declara como attr_reader, depois conseguimos adicionar e remover livros? Pq não deve ser attr_writer ou attr_accessor?
Olá, Fabio!
Peço desculpas pela demora em obter um retorno
Ótima pergunta! No caso do atributo livros
da classe Estoque
, o uso do attr_reader
é apropriado quando queremos apenas ler o valor do atributo, mas não modificá-lo diretamente. Isso significa que você poderá acessar o valor do atributo livros
, mas não poderá alterá-lo diretamente.
Se você quiser adicionar ou remover livros, você precisará definir métodos específicos para isso, como por exemplo adicionar_livro
e remover_livro
. Dessa forma, você terá controle sobre como os livros são adicionados ou removidos do estoque.
Agora, se você quiser permitir tanto a leitura quanto a modificação do atributo livros
, você pode utilizar o attr_accessor
. Com o attr_accessor
, você terá acesso tanto para ler quanto para escrever no atributo livros
.
Em resumo, o uso do attr_reader
é adequado quando você quer apenas ler o valor do atributo, enquanto o attr_accessor
é utilizado quando você quer ler e escrever no atributo.
Todavia, vale ressaltar que como você postou sua pergunta há algum tempo é possível que a constante evolução da tecnologia impacte na resolução da sua dúvida. Sendo assim, caso queira se aprofundar neste tema e com conteúdos atualizados, recomendo os materiais abaixo:
Espero ter ajudado e bons estudos!