Comment multiplier une duration par un entier en Go ?
Bonjour à tous ! J'ai récemment commencé à apprendre Go et j'ai rencontré un problème en travaillant avec des intervalles de temps. Je dois exécuter une action répétée avec un délai qui augmente plusieurs fois. Par exemple, je veux faire une pause de 1 seconde, puis de 2 secondes, puis de 3, et ainsi de suite.
J'ai écrit ce code :
```go
package main
import (
"fmt"
"time"
)
func main() {
baseDelay := 1 * time.Second
multiplier := 3
totalDelay := baseDelay * multiplier // Erreur !
fmt.Println("Total delay:", totalDelay)
}
```
Mais le compilateur renvoie une erreur : `invalid operation: baseDelay * multiplier (mismatched types time.Duration and int)`. Je comprends que les types sont différents, mais comment multiplier correctement une duration par un entier ? Dans d'autres langages (par exemple, Python), cela fonctionne directement. J'ai essayé de caster explicitement les types, mais rien n'a fonctionné.
Pouvez-vous m'indiquer comment effectuer correctement la multiplication d'une duration par un int en Go ? Et pourquoi cette opération est-elle interdite ? Merci d'avance !
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Travailler avec JSON en TypeScript : analyse et sérialisation pour débutants
Profilage du code PHP : trouver les goulots d'étranglement en pratique
Immutable vs const en Rust : quelle est la différence ? Guide 2025
Lire un fichier entier en Go : vitesse et optimisation