disclaimer: Code de la prise ruby koansRuby: cadrage explicite sur une définition de classe
Ceci est d'une discussion des constantes de cadrage au sein des classes. Voici la défintion d'un couple quelques classes:
class Animal
LEGS = 4
def legs_in_animal
LEGS
end
end
class MyAnimals
LEGS = 2
class Bird < Animal
def legs_in_bird
LEGS
end
end
end
À ce stade, faire MyAnimals::Bird.new.legs_in_bird
résultats dans 2 et je comprends pourquoi - recherche espace lexical de la constante avant l'héritage heirarchy.
Ensuite, cette classe est définie
class MyAnimals::Oyster < Animal
def legs_in_oyster
LEGS
end
end
Le tutoriel dit que l'appel maintenant MyAnimals::Oyster.new.legs_in_oyster
résultats à 4 et je ne peux pas le comprendre. Il me semble qu'Oyster est une classe imbriquée dans MyAnimals et en tant que telle, je m'attendais à ce qu'elle se comporte de la même manière que la classe des Oiseaux. Il me manque des informations clés sur ce que déclare la classe Oyster avec des moyens explicites.
quelqu'un peut-il m'expliquer cela? J'ai trouvé des centaines de tutoriels de classe Ruby via Google, mais aucun d'entre eux abordent cette situation.
vous remercie à l'avance ...
Est-ce que quelqu'un écrit le code qui dépendrait de la constante qui serait atteinte en premier? –