Como multiplicar duração (time.Duration) por um número inteiro em Go?
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com o pacote time. Preciso criar um timer que dispare a cada N segundos, onde N é fornecido pelo usuário como um número inteiro.
package main
import (
"fmt"
"time"
)
func main() {
var n int
fmt.Print("Digite o intervalo em segundos: ")
fmt.Scan(&n)
// Tentando multiplicar a duração
interval := time.Second * n // Erro!
fmt.Println(interval)
}
O compilador gera o erro: invalid operation: time.Second * n (mismatched types time.Duration and int). Entendo que time.Second é do tipo time.Duration, e n é int, e eles não podem ser simplesmente multiplicados. Mas como criar corretamente um intervalo múltiplo de um segundo? Em outras linguagens, como Python, eu simplesmente escrevia datetime.timedelta(seconds=n), e funcionava. Estou perdendo algo em Go?
Eu