Boo: явно указывает тип хэша - PullRequest
2 голосов
/ 29 января 2010

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

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

компилятор жалуется, что "метод не является членом объекта". Я понял, что он не знает, какого типа значение в хэше.

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

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

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

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

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

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

1 голос
/ 12 марта 2010

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

...