Pergunta

Sou novo no Boo e tentando descobrir como declarar o tipo de hash. Quando eu faço:

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

O compilador reclama que "o método não é um membro do objeto". Acredito que não sabe que tipo é o valor no hash.

Existe alguma maneira de declarar ao compilador que tipo as chaves e os valores do hash são para que ele não reclame?

Foi útil?

Solução

A hashtable incorporada no boo é muito semelhante à hashtable .NET padrão - a chave e o valor de cada entrada são ambos do tipo "objeto".

Sua melhor aposta é usar um dicionário genérico:

import System.Collections.Generic

myHash = Dictionary[of string, Foo]()

Este exemplo criará um dicionário em que o tipo de chave é uma string, e o valor será do tipo foo

Outras dicas

Outra opção que deixa seu código inalterado é permitir a digitação de pato com o -ducky trocar. Eu pessoalmente uso exclusivamente as coleções de System.Collections.Generic Em vez da lista interna e dos tipos de dicionário, pois o desempenho é muito melhor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top