ExpertiDict

Ruby · Avançado · Inglês · Técnico

instance variable get

/ˈɪnstəns ˈvɛɹiəbəl ɡɛt/método

Método de Object que lê uma variável de instância pelo nome, mesmo sem leitor público; existe também instance_variable_set. Faz parte da reflexão do Ruby.

Onde usar

Aparece em serializadores, depuradores e testes que inspecionam estado interno. Em código de produção, quebrar o encapsulamento assim é sinal de alerta.

Em código

class Conta
  def initialize; @saldo = 50; end
end
c = Conta.new
p c.instance_variable_get(:@saldo)  # => 50
c.instance_variable_set(:@saldo, 80)
p c.instance_variable_get(:@saldo)  # => 80

Exemplos

The test peeks at the state with instance_variable_get.

O teste espia o estado com instance_variable_get.

Reading private state this way breaks encapsulation.

Ler estado privado assim quebra o encapsulamento.

Cuidado

O nome precisa começar com @, senão lança NameError. Não o confunda com send, que chama métodos.

Sinônimos

reflexão

Veja também

Todos os termos de Ruby