문제

I am new to Boo, and trying to figure out how to declare the type of a hash. When I do:

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

the compiler complains that "method is not a member of object". I gather that it doesn't know what type the value in the hash is.

Is there any way I can declare to the compiler what type the keys and values of the hash are so that it won't complain?

도움이 되었습니까?

해결책

The builtin hashtable in boo is very similar to the standard .NET Hashtable - the key and value of each entry are both of type "object".

Your best bet is to use a generic Dictionary:

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

This example will create a dictionary where the type of the key is a string, and the value will be of type Foo

다른 팁

Another option that leaves your code unchanged is to enable duck typing with the -ducky switch. I personally exclusively use the collections from System.Collections.Generic instead of the built-in list and dictionary types, as performance is much better.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top