Verificação dinâmica de tipos por estruturas?

Estou confuso sobre a verificação dinâmica de tipos no Swift.

Especificamente, tenho um caso esquisito em que quero, essencialmente, escrever (ou encontrar) uma função:

func isInstanceOf(obj: Any, type: Any.Type) -> Bool

No Objetivo-C, isso éisKindOfClass, mas isso não vai funcionar porqueAny.Type inclui estruturas Swift, que não são classes (muito menosNSObject subclasses).

Eu não posso usar Swiftis aqui, porque isso requer um tipo codificado.

Não posso usarobj.dynamicType == type porque isso ignoraria subclasses.

oLivro rápido parece sugerir que essas informações são perdidas e não estão disponíveis para estruturas:

As classes têm recursos adicionais que as estruturas não:

...

A conversão de tipo permite verificar e interpretar o tipo de uma instância de classe em tempo de execução.

(No capítulo Conversão de tipo, ele diz "A conversão de tipo no Swift é implementada com os operadores is e como", portanto, parece ser uma definição mais ampla de "conversão de tipo" do queem outros idiomas.)

No entanto, não pode ser verdade queis/as não funciona com estruturas, pois você pode colocar Strings e Ints em um[Any]e retire-os mais tarde e useis String ouis Int para descobrir o que eram. O capítulo Casting de tipos do livro Swift faz exatamente isso!

Existe algo que é tão poderoso quantoisKindOfClass mas para quaisquer instâncias Swift? Essa informação ainda deve existir em tempo de execução, certo?

questionAnswers(2)

yourAnswerToTheQuestion