En Ruby, Comment appelez-vous une méthode de classe de l’une des instances de cette classe ? Dire que j’ai
la ligne récupère la valeur par défaut. Mais y a-t-il une manière de le dire sans parler de
? Il semble qu’il devrait y avoir.
En Ruby, Comment appelez-vous une méthode de classe de l’une des instances de cette classe ? Dire que j’ai
la ligne récupère la valeur par défaut. Mais y a-t-il une manière de le dire sans parler de
? Il semble qu’il devrait y avoir.
Utiliser self.class.blah n'est PAS la même chose que d'utiliser ClassName.blah
quand il s'agit de l'héritage.
class Truck
def self.default_make
"mac"
end
def make1
self.class.default_make
end
def make2
Truck.default_make
end
end
class BigTruck < Truck
def self.default_make
"bigmac"
end
end
ruby-1.9.3-p0 :021 > b=BigTruck.new
=> #<BigTruck:0x0000000307f348>
ruby-1.9.3-p0 :022 > b.make1
=> "bigmac"
ruby-1.9.3-p0 :023 > b.make2
=> "mac"
Vous faites la bonne façon. Méthodes de la classe (similaires aux méthodes « statiques » en C++ ou Java) ne sont pas partie de l’instance, afin qu’ils aient à être référencés directement.
Sur cette note, dans votre exemple vous seraient mieux servis en « default_make » une méthode normale :
Méthodes de la classe sont plus utiles pour des fonctions de service public-type qui utilisent la classe. Par exemple :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.