Désolé, je ne pouvais pas obtenir le formatage du code pour travailler dans un « commentaire "seulement dans une" réponse "mais ceci est en réponse à la question d'akostadinov à Hendrik" en quoi est-ce différent de sa réponse [de Konstantin]? "
Je suppose que Hendrik essayait d'accéder à la constante des méthodes dans sa classe d'héritage & qui dépend si c'est une instance ou une méthode statique. Il semble se comporter comme vous vous y attendez dans une méthode d'instance. Mais peut-être ou peut-être pas comment vous vous attendez pour une méthode statique. Même si ce n'est pas ce que Hendrik voulait dire, cela peut être intéressant de noter:
Si vous avez les définitions de classes exactes que Konstantin, mais vous ajoutez une méthode à la classe A comme ceci:
def self.print_const
puts CONST
end
Ensuite, vous obtenez un deux fois:
A.print_const # prints A
B.print_const # prints A
Toutefois, si vous définissez la méthode A en faisant référence à la classe:
def self.print_const
puts self::CONST
end
Ensuite, vous obtenez:
A.print_const # prints A
B.print_const # prints B
Parfait, merci beaucoup! – Tom
Donc ... cela signifie qu'il n'y a aucun moyen de le faire sans changer partout dans la classe A qui utilise CONST? – nohat
Oui. La recherche constante est généralement liée au moment de la compilation. –