Pregunta

Soy nuevo en Boo, y tratando de encontrar la manera de declarar el tipo de un hash. Cuando hago:

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

el compilador se queja de que "método no es miembro de objeto". Tengo entendido que no sabe de qué tipo es el valor en el hash es.

¿Hay alguna manera de que pueda declarar al compilador de qué tipo es las claves y valores de la patata son de modo que no se quejará?

¿Fue útil?

Solución

La tabla hash incorporado en Boo es muy similar a la norma .NET Hashtable -. La clave y el valor de cada entrada son ambos de tipo "objeto"

Su mejor opción es usar un diccionario genérico:

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

En este ejemplo se creará un diccionario en el que el tipo de la clave es una cadena, y el valor será de tipo Foo

Otros consejos

Otra opción que deja sin cambios su código es permitir la tipificación de pato con el interruptor -ducky. Yo personalmente uso exclusivamente las colecciones de System.Collections.Generic en lugar de los tipos incorporados en la lista y diccionario, como el rendimiento es mucho mejor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top