Boo: in modo esplicito specificando il tipo di un hash
-
23-09-2019 - |
Domanda
Sono nuovo di Boo, e cercando di capire come dichiarare il tipo di un hash. Quando faccio:
myHash = {}
myHash[key] = value
(later)
myHash[key].method()
il compilatore si lamenta che "il metodo non è membro di oggetto". Mi sembra di capire che non sa che cosa digitare il valore nel hash è.
C'è un modo per dichiarare al compilatore quale tipo le chiavi ei valori di hash sono in modo che non si lamenterà?
Soluzione
La tabella hash incorporato in boo è molto simile a .NET Hashtable di serie -. La chiave e il valore di ogni voce sono sia di tipo "oggetto"
La cosa migliore è quella di utilizzare un Dizionario generico:
import System.Collections.Generic
myHash = Dictionary[of string, Foo]()
Questo esempio creare un dizionario in cui il tipo della chiave è una stringa, e il valore sarà di tipo Foo
Altri suggerimenti
Un'altra opzione che lascia invariato il codice è quello di consentire la digitazione anatra con l'interruttore -ducky
. Io personalmente uso esclusivamente le collezioni System.Collections.Generic
al posto della lista built-in e tipi del dizionario, come prestazioni è molto meglio.