class MySymbol
TABLE={}
def initialize(str) @str = str end
def to_s() @str end
def ==(other)
self.object_id == other.object_id
end
end
class String
def my_intern
table = MySymbol::TABLE
unless table.has_key?(self)
table[self] = MySymbol.new(self)
end
table[self]
end
end
"foo".my_intern
Dans l'exemple ci-dessus, que j'ai trouvé sur un blog, je comprends que le tableau est un hachage et est membre de la classe MySymbol. Ce que je ne comprends pas, c'est comment on peut y accéder publiquement depuis la classe String. Je pensais que les variables d'instance de classe sont privées par défaut et que vous devez utiliser des méthodes get/set pour les accéder depuis l'extérieur de la classe?Pourquoi est publiquement accessible dans mon exemple: « MySymbol :: TABLE »