Niestety nie mogłem dostać kod formatowania do pracy w „komentarzu "tylko w" odpowiedzi ", ale jest to odpowiedź na pytanie Akostadinowa do Hendrika" jak to się różni od jego odpowiedzi [Konstantina]? "
Przypuszczam, że Hendrik próbował uzyskać dostęp do stałej z metod w swojej klasie dziedziczenia &, która zależy od tego, czy jest to instancja, czy metoda statyczna. Wygląda na to, że zachowuje się tak, jak można się spodziewać w metodzie instancji. Ale może, a może nie, jak można się spodziewać po statycznej metodzie. Nawet jeśli to nie to, co Hendrik myśli, to może być warto zauważyć:
Jeśli masz dokładnych definicji klas jak Konstantin, ale trzeba dodać metodę do klasy A tak:
def self.print_const
puts CONST
end
Wtedy dostaniesz oba czasy:
A.print_const # prints A
B.print_const # prints A
jeśli jednak określić metodę w odwołując klasę:
def self.print_const
puts self::CONST
end
Otrzymasz:
A.print_const # prints A
B.print_const # prints B
Idealne, wielkie dzięki! – Tom
Więc ... to znaczy, że nie ma sposobu, aby to zrobić bez zmiany miejsca w klasie A, która używa CONST? – nohat
Tak. Stałe wyszukiwanie jest zwykle ograniczone podczas kompilacji. –