Pular para o conteúdo

Cast de Unidades

Nesta página

as extrai o componente de relógio de uma duração — o campo naquela posição, não o total na unidade. d as h dá as horas inteiras; d as min dá os minutos restantes (0–59); d as s os segundos restantes (0–59); d as ms os milissegundos restantes.

Esse comportamento é análogo aos campos de um relógio: 25h1min1s exibe 25:1:1, e não 1501:61:61.

Componentes h, min, s e ms de uma duração de 25h; total na unidade via divisão; as ms para o resto em milissegundos.

03-cast-to-units.zolo
Playground
// Feature: extract clock components with `as`

// Syntax: `dur as h | min | s | ms` — extracts the component of that

// "field" (not the total in the unit).

// When to use: formatting like `HH:MM:SS`. For total in the unit,

// just do arithmetic: `d / 60000` = total in minutes.


// 25h 1min 1s = 90061s = 90_061_000 ms.

let d = 90061000

// Clock components: each `as <unit>` extracts that "field".

print("{d as h}:{d as min}:{d as s}")

// expected: 25:1:1


// For total in the unit, divide.

let total_min = d / 60000
let total_sec = d / 1000
print("total min: {total_min}")
print("total sec: {total_sec}")

// expected:

// total min: 1501

// total sec: 90061


// `as ms` picks up the remainder in milliseconds.

let exact = 1500
print("ms: {exact as ms}")

// expected: ms: 500


// Combined with arithmetic.

let small = 300000 + 30000
print("min={small as min}, s={small as s}")
// expected: min=5, s=30

Para obter o total em determinada unidade, use divisão aritmética: d / 60000 dá o total de minutos, d / 1000 o total de segundos.

Buscar no Zolo

9 resultados

enespt-br