Saltar al contenido

22 · Expresiones Temporales

Sufijos de unidades declarados

Asocia @unit a un newtype escalar para dar un sufijo tipado a los literales. Conserva el tipo nominal y la precisión escalar. Un sufijo solo no define conversión: declara dimensiones y escalas para convertir automáticamente.

En esta página

Asocia @unit a un newtype escalar para dar un sufijo tipado a los literales. Conserva el tipo nominal y la precisión escalar. Un sufijo solo no define conversión: declara dimensiones y escalas para convertir automáticamente.

Ejemplo completo

Sufijos 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

Reglas y comportamiento

Validación, esquemas y unidades · Documentación

Desde un checkout del repositorio:

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

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br