Boo:明确指定哈希的类型

时间:2010-01-29 01:51:01

标签: hash boo static-typing

我是Boo的新手,并试图弄清楚如何声明哈希的类型。当我这样做时:

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

编译器抱怨“方法不是对象的成员”。我知道它不知道哈希值的类型是什么类型。

有什么方法可以向编译器声明散列的键和值是什么类型,以便它不会抱怨?

2 个答案:

答案 0 :(得分:2)

boo中的内置哈希表与标准的.NET Hashtable非常相似 - 每个条目的键和值都是“object”类型。

您最好的选择是使用通用词典:

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

此示例将创建一个字典,其中键的类型是字符串,值的类型为Foo

答案 1 :(得分:1)

保持代码不变的另一个选项是使用-ducky开关启用duck typing。我个人专门使用来自System.Collections.Generic的集合而不是内置列表和字典类型,因为性能要好得多。