Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferenças entres attr accessor

Não consegui entender a diferença dos attr acessor

1 resposta
solução!

Oi Felipe,

Temos 3 formas de acessarmos um atributo: attr_reader, attr_writer e attr_accessor.

O attr_reader só cria o método de leitura do seu atributo, ou seja, você pode imprimir os dados mas não pode atribuir nenhum valor fora da classe. Já o attr_writer é o contrário, você só possui acesso de escrita para o atributo.

Quando você precisa tanto ler, quanto escrever, aí você pode utilizar o attr_accessor pois ele faz os dois.

Ex:

class Produto
    attr_reader :nome
    attr_writer :preco
    attr_accessor :descricao
end

p = Produto.new
puts p.nome # Aqui funciona, possui o attr_reader
p.nome = "Bola" # Aqui não funciona, o acesso é somente de leitura

p.preco = 10 # Esse funciona, tem attr_writer
puts p.preco # Não tem acesso de leitura, dá problema

p.descricao = "Bola de futebol" # Atribui normalmente, tem attr_accessor
puts p.descricao # Imprime normalmente, tem attr_accessor

Abraço!

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