self kann sich sowohl auf Klassen als auch auf Instanzen beziehen.
Für mich war das Bild, das auf eine Instanz verweist, stärker, aber ich habe kürzlich erfahren, dass es auf eine Klasse verweist, also habe ich es zusammengefasst. Ich habe gehört, dass "Ruby das gleiche ist wie dieses in Java", aber ich weiß immer noch nicht, ob es genau das gleiche ist. Ich habe das jetzt in Java vergessen.
class ClassA
def foo #Instanzmethode
puts "ins_foo"
puts self #Dieses Selbst ist eine Instanz(Klasse-A-Instanz)Zeigen auf
end
def self.foo #Klassenmethode(Dieses Selbst ist die Klasse selbst(ClassA)Zeigen auf)
puts "self_foo"
puts self #Dieses Selbst ist die Klasse selbst(ClassA)Zeigen auf
end
end
ClassA.foo
# self_foo
# ClassA #Auf eine Klasse zeigen
ClassA.new.foo
# ins_foo
# #<ClassA:0x00007f93108144d0> #Auf eine Instanz zeigen
Ich habe gelesen, dass beim Definieren einer Klassenmethode "self" hinzugefügt wird, aber dieses self bezieht sich auf die Klasse.
Recommended Posts