quanto riguarda:Che cosa significa class << self mean?
class Test
class << self
def hi
puts "Hi there"
end
end
Sono venuto con seguente immagine nella mia testa:
Dal momento che tutto è un oggetto in Ruby, le classi stesse sono oggetti della classe Class
. Chiamando class << self
si apre la definizione Class
dall'interno di Test
e si introducono alcuni metodi di istanza. Poiché Test
è un'istanza di Class
, è possibile chiamare tali metodi allo stesso modo in cui si richiamano i metodi di istanza sugli oggetti: Test.hi
.
Di seguito è riportato il codice pseudo che aiuta a visualizzare il mio precedente frase:
class Class
def hi
puts “Hi there”
end
end
Test = Class.new(class Test
end)
Test.hi
mi appare questo diritto?
Quindi quello che stai dicendo è fondamentalmente invece di modificare 'Class', Ruby crea una classe anonima, che eredita da' Class' e ha il metodo 'hi' definito, ed è una classe di oggetto' Test'? – spacemonkey
Sì. È giusto. – sawa
Bello finalmente rompere questo. Grazie! – spacemonkey