2010-01-29 75 views
2

我是Boo的新手,並試圖弄清楚如何聲明散列的類型。當我這樣做:Boo:明確指定散列的類型

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

編譯器抱怨說「方法不是對象的成員」。我收集它不知道哈希值是什麼類型。

有沒有什麼辦法可以向編譯器聲明哪些類型的哈希鍵和值是不會抱怨的?

回答

2

boo中的內置散列表與標準.NET Hashtable非常相似 - 每個條目的鍵和值都是「object」類型。

最好的辦法是用一個通用的字典:

import System.Collections.Generic 

myHash = Dictionary[of string, Foo]() 

這個例子將創建一個字典,其中鍵的類型是一個字符串,其值將是Foo類型

1

另一選項會使您的代碼保持不變,以便使用-ducky開關進行鴨子打字。我個人專門使用System.Collections.Generic的集合,而不是內置列表和字典類型,因爲性能要好得多。