Percursos
/
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, são passados todos os argumentos ao método .initialize para inicializar o estado da instância.
  • Os nomes das variáveis de instância começam com @.
  • As variáveis de instância têm o valor predefinido nil até serem definidas explicitamente.
  • As variáveis de instância são privadas por predefiniçã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
  • Os métodos com um = no fim são reconhecidos pelo Ruby como setters e permitem o uso do "açúcar" sintático da sintaxe de atribuição, por exemplo Backpack.new("Sven").owner = "Ayah". Repara no espaço entre owner e =, enquanto o nome real do método é owner=.
  • Os 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
  • Porquê usar getters e setters em vez da variável de instância diretamente?
    • Se houvesse um erro tipográfico (a que chamamos "typo") no exemplo anterior (por exemplo @ownar), falharia silenciosamente, podendo introduzir um bug no sistema.
    • Os getters e setters tornam isto explícito e lançam um erro quando é cometido um erro tipográfico.

Referências

Inicializar instâncias de objetos

Variáveis de instância

Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Variáveis de instância

A prática está bloqueada

Desbloqueia mais 5 exercícios para praticares Variáveis de instância