我是Boo的新手,并试图弄清楚如何声明哈希的类型。当我这样做时:
myHash = {}
myHash[key] = value
(later)
myHash[key].method()
编译器抱怨“方法不是对象的成员”。我知道它不知道哈希值的类型是什么类型。
有什么方法可以向编译器声明散列的键和值是什么类型,以便它不会抱怨?
答案 0 :(得分:2)
boo中的内置哈希表与标准的.NET Hashtable非常相似 - 每个条目的键和值都是“object”类型。
您最好的选择是使用通用词典:
import System.Collections.Generic
myHash = Dictionary[of string, Foo]()
此示例将创建一个字典,其中键的类型是字符串,值的类型为Foo
答案 1 :(得分:1)
保持代码不变的另一个选项是使用-ducky
开关启用duck typing。我个人专门使用来自System.Collections.Generic
的集合而不是内置列表和字典类型,因为性能要好得多。