Pular para o conteúdo

22 · Expressões Temporais

Sufixos de unidades declarados

Associe @unit a um newtype escalar para dar um sufixo tipado aos literais. O sufixo preserva o tipo nominal e a precisão do escalar. Um sufixo sozinho não define conversão: declare dimensões e escalas para converter automaticamente.

Nesta página

Associe @unit a um newtype escalar para dar um sufixo tipado aos literais. O sufixo preserva o tipo nominal e a precisão do escalar. Um sufixo sozinho não define conversão: declare dimensões e escalas para converter automaticamente.

Exemplo completo

Sufixos de unidades declarados.

20-typed-units.zolo
Playground
// Declared suffixes retain exact scalar spelling and nominal ownership.

@unit("kg") newtype Mass(decimal) where |value| value >= 0d
@unit("g") newtype Grams(decimal)
@unit("crate") newtype Crates(int)

let parcel = 2.5kg
let total = parcel + 0.5kg
print(total.unwrap()) // expected: 3.0

print((parcel * 2d).unwrap()) // expected: 5.0

print(parcel / 0.5kg) // expected: 5

print(parcel > 1kg) // expected: true


let grams = 500g
let converted = Mass.new(grams.unwrap() / 1000d).unwrap()
print(converted.unwrap()) // expected: 0.50


let stock = 8crate
print((stock / 2).unwrap()) // expected: 4

print(stock / 2crate) // expected: 4

Regras e comportamento

Validação, schemas e unidades · Documentação

A partir de um checkout do repositório:

zolo examples/features/01-syntax-and-types/20-typed-units.zolo

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br