Unidades de Medida
Defina e rastreie unidades físicas para reduzir bugs catastróficos de análise dimensional.
Unidades de Medida
Unidades de medida continuam sendo uma parte importante do modelo da linguagem, porque conectam o Sounio à correção científica, não apenas à estética sintática. A postura correta da documentação hoje é: unidades existem no design da linguagem e do checker, mas a aplicação ponta a ponta ainda precisa ser descrita de forma conservadora.
Contrato atual
- A sintaxe de unidades e de quantities faz parte da história da linguagem e do trabalho ativo do checker.
- O artefato verificado divulga unidades de medida como um recurso da linguagem.
- A documentação pública deve continuar apresentando a aplicação de unidades como parcial, a menos que um caminho específico tenha sido verificado no artefato ou nos testes atuais.
Sintaxe de unidades no nível do modelo
unit kg;
unit m;
unit s;
let speed: Quantity[f64, m/s] = 3.0@Quantity[f64, m/s]
Onde inspecionar o trabalho de implementação
self-hosted/check/units.sioé o lugar mais direto para inspecionar o trabalho atual de verificação de unidades self-hosted.docs/compiler/UNIT_RUNTIME_CHECKING.mde outros documentos relacionados do compilador fornecem contexto adicional sobre o modelo de aplicação pretendido.- Exemplos e testes científicos são o lugar certo para procurar as afirmações mais seguras no momento, especialmente onde unidades interagem com lógica de domínio.
Orientação para a documentação
- Ensine unidades como parte do design da linguagem e do esforço atual do checker.
- Evite prometer aplicação completa de incompatibilidade dimensional em todo caminho de backend, a menos que você tenha verificado isso diretamente.
- Quando unidades importarem para afirmações de segurança ou de ciência, conecte a documentação de volta a uma fixture, benchmark ou artefato de gate real.