Ruby Hash aide bug!
Question
Je suis en train de créer un Ruby Hash d'objets, dont les clés sont l'objet membre @name:
# m is an object with an @name instance variable (a string)
myHash = {}
myHash[m.name] = m
Il est donné cette erreur:
#<TypeError: can't convert String into Integer>
Quelqu'un sait pourquoi? Je suis sûr que m.name est une chaîne valide ...
La solution 2
A été accidentellement réutilisant un nom de variable qui était un tableau ... oups!
Pour une raison quelconque, je pensais que le hachage me tromper parce que je n'avais pas utilisé une à Ruby avant ...
Autres conseils
Est-ce que cette aide exemple RIR?
> class MyClass
> attr_reader :name
> def initialize
> @name = "myname"
> end
> end
=> nil
> m = MyClass.new
=> #<MyClass:0x47c3e0 @name="myname">
> puts m.name
myname
=> nil
> myHash = {}
=> {}
> myHash[m.name] = m
=> #<MyClass:0x47c3e0 @name="myname">
> puts myHash.inspect
{"myname"=>#<MyClass:0x47c3e0 @name="myname">}
=> nil
Remarquez la attr_reader :name
qui crée une méthode de lecture pour le nom.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow