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