Como multiplicar duration por um número inteiro em Go?
Olá a todos! Recentemente comecei a estudar Go e me deparei com um problema ao trabalhar com intervalos de tempo. Preciso executar uma ação repetitiva com um atraso que aumenta várias vezes. Por exemplo, quero fazer uma pausa de 1 segundo, depois de 2 segundos, depois de 3 e assim por diante.
Escrevi o seguinte código:
```go
package main
import (
"fmt"
"time"
)
func main() {
baseDelay := 1 * time.Second
multiplier := 3
totalDelay := baseDelay * multiplier // Erro!
fmt.Println("Total delay:", totalDelay)
}
```
Mas o compilador apresenta o erro: `invalid operation: baseDelay * multiplier (mismatched types time.Duration and int)`. Entendo que os tipos são diferentes, mas como multiplicar corretamente duration por um número inteiro? Em outras linguagens (por exemplo, Python) isso funciona diretamente. Tentei fazer cast explícito de tipos, mas não deu certo.
Alguém pode me dizer como realizar corretamente a multiplicação de duration por int em Go? E por que essa operação é proibida? Desde já, obrigado!