Question

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?

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top