2010-01-29 2 views
2

Я новичок в Boo и пытаюсь выяснить, как объявить тип хэша. Когда я это делаю:Boo: Явное указание типа хеша

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

компилятор жалуется, что «метод не является членом объекта». Я понимаю, что он не знает, какой тип значения в хеше.

Можно ли каким-либо образом объявить компилятору, какой тип ключей и значений хеша, чтобы он не стал жаловаться?

ответ

2

Встроенная хэш-таблица в буке очень похожа на стандартную .NET Hashtable - ключ и значение каждой записи являются объектами типа.

Лучше всего использовать общий словарь:

import System.Collections.Generic 

myHash = Dictionary[of string, Foo]() 

В этом примере создается словарь, где тип ключа является строкой, а значение будет иметь тип Foo

1

другой вариант, который оставляет ваш код неизменным, - включить утиную печать с помощью переключателя -ducky. Я лично исключительно использую коллекции от System.Collections.Generic вместо встроенных списков и типов словарей, так как производительность намного лучше.

Смежные вопросы