Pular para o conteúdo

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.

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br