Le site ::
est l'opérateur de résolution de la portée. Son rôle est de déterminer sous quelle portée se trouve un module. Par exemple :
module Music
module Record
# perhaps a copy of Abbey Road by The Beatles?
end
module EightTrack
# like Gloria Gaynor, they will survive!
end
end
module Record
# for adding an item to the database
end
Pour accéder à Music::Record
de l'extérieur de Music
vous utiliseriez Music::Record
.
En référence Music::Record
de Music::EightTrack
vous pourriez simplement utiliser Record
parce qu'il est défini dans la même portée (celle de Music
).
Cependant, pour accéder à l Record
responsable de l'interface avec votre base de données à partir de Music::EightTrack
vous ne pouvez pas simplement utiliser Record
parce que Ruby pense que tu veux Music::Record
. C'est dans ce cas que vous utiliserez l'opérateur de résolution de portée comme préfixe, en spécifiant la portée globale/principale : ::Record
.
16 votes
J'ai cherché ce sujet en utilisant l'expression "leading colons" et je ne l'ai pas trouvé initialement ; j'espère que ce commentaire changera cela. :)
0 votes
@NathanLong Idée intéressante. Cela a-t-il fonctionné ? Veuillez nous en faire part.
1 votes
@NathanLong Ça a marché !