Come determinare la classe aperta corrente in Ruby?Ruby current class
risposta
All'interno di un corpo class
definizione , self
si riferisce alla classe stessa. Module#name
ti dirà il nome della classe/modulo, ma solo se ne ha effettivamente uno. (In Ruby, non esiste un "nome di classe". Le classi sono semplicemente oggetti come qualsiasi altro che vengono assegnati a variabili come qualsiasi altro. È solo che se si assegna un oggetto di classe a una costante, allora il metodo name
restituirà il nome di quel costante)
Esempio:.
puts class Foo
name
end
# Foo
Ma:
bar = Class.new
bar.name # => nil
BAR = bar
bar.name #=> 'BAR'
All'interno della classe stessa:
class_name = self.class
su un oggetto inizializzata nome obj
:
class_name = obj.class
Si utilizza 'class' come variabile e 'class' è una parola chiave riservata. Rinomina variabile 'classe' – cristian
+1 Esattamente quello che mi serviva :) – onetwopunch
'class_name' ancora non è un nome perfetto per quella variabile, poiché è l'oggetto classe, non la stringa nome. Un nome migliore per la variabile potrebbe essere 'klass'. – aridlehoover
se avete obj = SomeClass.new
si ottiene la classe con obj.class
Nel mio caso, il metodo name
stato sovrascritto, trovo to_s
dammi di quest'acqua stesso risultato
class Foo
puts self.name
puts self.to_s
end
#=> Foo
#=> Foo
- 1. UITesting, XCTest current ViewController Class
- 2. Ruby class set/get
- 3. class() vs. type() in Ruby
- 4. Perché Object.class == Class in Ruby?
- 5. Ruby Object Model/Class/Modules .... diagram dovunque?
- 6. Class vs Module nella progettazione dell'API Ruby?
- 7. Compact Framework Current Folder
- 8. FreeMarker Current Date Comparison
- 9. Current Thread Method java
- 10. Magento - get current product
- 11. spark sql current timestamp function
- 12. react router - get current route
- 13. PHP display current server path
- 14. Git - push current shortcut corrente
- 15. HTML 5 Audio Current Position
- 16. Perché TUTTO è un'istanza di Class in Ruby?
- 17. Cosa fa class ClassName <:: OtherClassName in Ruby?
- 18. Symfony2: Inject current user in Service
- 19. jquery aggiungi remove class
- 20. Class # isinstance vs Class # isAssignableFrom
- 21. Get git current branch/tag name
- 22. COME? Controller return nothing/current view
- 23. Autorizzazione SVN negata - txn-current-lock
- 24. permesso svn txn-current-lock negato
- 25. AngularJS ottiene current templateUrl (pagina html)
- 26. con-current-buffer non sposta il punto
- 27. Python 2.6: Class in a Class?
- 28. TextFieldParser Class
- 29. Refresh Current Fragment (ListView dati) rimanendo nella stessa attività
- 30. Come può Class essere della classe Class e non avere metodi di istanza di classe?
È il tuo sé! –