Guia 26 de 53
Consultas estáticas de tipos
Use o tipo verificado de uma expressão sem executá-la.
Uma anotação typeof usa o tipo verificado de uma expressão. A expressão não executa, mesmo quando a consulta contém uma chamada de função.
let defaults = .{ host: "localhost", attempts: 3 }
type Options = typeof defaults
fn describe(options: Options) -> str =
"{options.host}: {options.attempts} attempts"
let production: Options = .{ host: "api.example.com", attempts: 5 }
print(describe(production))Options conserva os nomes e tipos dos campos. Um host numérico causa um erro de tipos. Use typeof (expressão) para consultar uma expressão aritmética ou condicional; sem parênteses, o operando admite referências, campos, índices e chamadas.
O compilador resolve inicializadores globais e assinaturas sem executá-los. Consultas cíclicas geram diagnóstico. O formatador conserva a escrita typeof; o compilador a substitui pela anotação resolvida.
A consulta ainda não pode representar posse opaca de máquinas, grandezas dimensionais, conjuntos abertos de efeitos ou funções com defaults e testemunhos de reificação. Essas formas geram diagnóstico para preservar seus contratos. Cabeçalhos de funções estrangeiras precisam de tipos explícitos antes da tradução pelo provider.
DOCS / OPINIÃO
Esta página deixou alguma pergunta?
Conte onde a explicação perdeu você. A documentação também faz parte da experiência da linguagem.