Avatar ·

¿Cómo multiplicar una duración (time.Duration) por un número entero en Go?

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al trabajar con el paquete time. Necesito crear un timer que se active cada N segundos, donde N es un número entero ingresado por el usuario.

package main

import (
    "fmt"
    "time"
)

func main() {
    var n int
    fmt.Print("Ingrese el intervalo en segundos: ")
    fmt.Scan(&n)
    
    // Intento multiplicar la duración
    interval := time.Second * n  // ¡Error!
    fmt.Println(interval)
}

El compilador muestra el error: invalid operation: time.Second * n (mismatched types time.Duration and int). Entiendo que time.Second es del tipo time.Duration y n es int, y no se pueden multiplicar directamente. Pero, ¿cómo crear correctamente un intervalo múltiplo de un segundo? En otros lenguajes, como Python, simplemente escribía datetime.timedelta(seconds=n) y funcionaba. ¿Me estoy perdiendo algo en Go?

Yo