Trilhas
/
Ruby
Ruby
/
Programa
/
Variáveis de instância
Va

Variáveis de instância em Ruby

7 exercícios

Sobre Variáveis de instância

Pontos-chave:

  • Quando o método .new de uma classe é chamado para criar uma instância de objeto, o método .initialize recebe todos os argumentos para inicializar o estado da instância.
  • Os nomes de variáveis de instância têm o prefixo @.
  • As variáveis de instância valem nil por padrão até serem definidas explicitamente.
  • As variáveis de instância são privadas por padrão e devem ser manipuladas com getters e setters.
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • Métodos com um = no final são reconhecidos pelo Ruby como setters e permitem o uso de "açúcar sintático" com a sintaxe de atribuição, por exemplo Backpack.new("Sven").owner = "Ayah". Repare no espaço entre owner e =, enquanto o nome real do método é owner=.
  • Getters e setters podem ser criados com os métodos attr_reader, attr_writer e attr_accessor:
    • attr_reader: cria getters para os símbolos listados
    • attr_writer: cria setters para os símbolos listados
    • attr_accessor: cria getters e setters para os símbolos listados
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • Por que usar getters e setters em vez da variável de instância diretamente?
    • Se houvesse um erro de digitação (chamamos isso de "typo") no exemplo anterior (por exemplo, @ownar), ele falharia silenciosamente e poderia introduzir um bug no sistema.
    • Getters e setters tornam isso explícito e lançam um erro quando há um typo.

Referências

Inicializando instâncias de objeto

Variáveis de instância

Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Variáveis de instância

A prática está bloqueada

Desbloqueie mais 5 exercícios para praticar Variáveis de instância