Ruby · Essencial · Inglês · Técnico
self
Referência ao objeto que está executando o código naquele ponto. Dentro de um método de instância é o objeto; no corpo de uma classe é a própria classe.
Onde usar
Aparece em def self.criar, que define método de classe, e em self.nome = para chamar um setter. Saber quem é o self em cada linha explica boa parte do comportamento de DSLs.
Em código
puts self # => main
class Conta
puts self # => Conta
def quem = self
end
puts Conta.new.quem.class # => ContaExemplos
Inside a class body, self is the class itself.
Dentro do corpo da classe, self é a própria classe.
You need self.name = to call the setter.
Você precisa de self.name = para chamar o setter.
Cuidado
Não o confunda com o this de outras linguagens: o self muda em contextos como o corpo da classe e instance_eval.
Sinônimos
this