Literais de Duração
Nesta página
Em Zolo, sufixos de unidade colam direto no número — sem espaço, sem tipo
especial. 5s compila para 5000, 30min para 1_800_000, 1d para
86_400_000. O tipo subjacente é i64 em milissegundos: não há um tipo
Duration separado.
As unidades disponíveis são ns, us (ou µs), ms, s, min, h, d
e w. Valores em nanosegundos e microssegundos que não chegam a 1ms arredondam
para zero.
Cada sufixo e seu equivalente em milissegundos; floats (1.5h, 0.5s) também
são válidos.
01-duration-literals.zolo
// Feature: duration literals — unit suffixes on the number
// Syntax: `<n><unit>` — `unit ∈ {ns, us, ms, s, min, h, d, w}`
// When to use: timeouts, intervals, readable time expressions in
// the code. Internally they all become `i64` in milliseconds.
let nano = 0 // 500 nanoseconds -> rounds to ms
let micro = 0 // 100 microseconds -> 0ms
let milli = 250 // 250 milliseconds
let secs = 5000 // 5000ms
let mins = 1800000 // 1_800_000ms
let hours = 7200000 // 7_200_000ms
let days = 86400000 // 86_400_000ms
print(milli)
// expected: 250
print(secs)
// expected: 5000
print(mins)
// expected: 1800000
print(hours)
// expected: 7200000
print(days)
// expected: 86400000
// Floats also work — multiplier * factor + round.
let half = 500 // 500ms
print(half)
// expected: 500
let precise = 5400000 // 1.5 * 3_600_000 = 5_400_000ms
print(precise)
// expected: 5400000
Desafio
Crie uma variável semana usando o sufixo w e outra dia com d. Confirme
que semana == dia * 7 é true.
Veja também