Question

Je suis nouveau à Boo, et essayer de comprendre comment déclarer le type d'un hachage. Quand je fais:

   myHash = {}
   myHash[key] = value
   (later)
   myHash[key].method()

le compilateur se plaint que « méthode ne fait pas partie de l'objet ». Je crois qu'il ne sait pas quel type de la valeur dans le hachage est.

Est-il possible que je peux déclarer au compilateur quel type les clés et les valeurs du hachage sont de sorte qu'il ne se plaindra pas?

Était-ce utile?

La solution

La commande interne Hashtable dans boo est très similaire à la norme .NET Hashtable -. La clé et la valeur de chaque entrée sont à la fois « objet » de type

Votre meilleur pari est d'utiliser un dictionnaire générique:

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

Cet exemple va créer un dictionnaire où le type de la clé est une chaîne, et la valeur sera de type Foo

Autres conseils

Une autre option qui laisse inchangé votre code est de permettre la saisie de canard avec le commutateur -ducky. Personnellement, j'utilise exclusivement les collections de System.Collections.Generic au lieu de la liste intégrée et types dictionnaire, que la performance est beaucoup mieux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top