Go · Essencial · Inglês · Técnico
time.Duration
Tipo que representa um intervalo de tempo em nanossegundos, implementado como int64. Multiplicado por constantes como time.Second, expressa prazos e esperas.
Onde usar
Usado em timeouts, sleeps e tickers. Como a unidade é nanossegundo, passar um inteiro puro sem multiplicar por time.Second é erro frequente.
Em código
n := 5
time.Sleep(time.Duration(n) * time.Second)
d := 1500 * time.Millisecond
fmt.Println(d) // 1.5s
fmt.Println(d.Seconds()) // 1.5Exemplos
Sleep for time.Duration(n) times time.Second.
Durma por time.Duration(n) vezes time.Second.
The timeout was one nanosecond because I forgot time.Second.
O timeout era de um nanossegundo porque esqueci o time.Second.
Cuidado
Para converter uma variável inteira, escreva time.Duration(n) * time.Second; multiplicar dois Durations compila, mas dá um valor absurdo.