self peut faire référence à la fois aux classes et aux instances.
Pour moi, l'image qui pointe vers une instance était plus forte, mais j'ai récemment appris qu'elle pointe vers une classe, alors je l'ai résumée. J'ai entendu dire que "ruby est le même que celui-ci en java", mais je ne sais toujours pas si c'est exactement le même. J'ai oublié cela en Java maintenant.
class ClassA
def foo #Méthode d'instance
puts "ins_foo"
puts self #Ce moi est une instance(Instance de classe A)Pointer vers
end
def self.foo #Méthode de classe(Ce moi est la classe elle-même(ClassA)Pointer vers)
puts "self_foo"
puts self #Ce moi est la classe elle-même(ClassA)Pointer vers
end
end
ClassA.foo
# self_foo
# ClassA #Pointant vers une classe
ClassA.new.foo
# ins_foo
# #<ClassA:0x00007f93108144d0> #Pointant vers une instance
J'ai lu que lors de la définition d'une méthode de classe, ajoutez self.
, mais ce self fait référence à la classe.
Recommended Posts