Heim >Backend-Entwicklung >Golang >Wie multipliziere ich eine Dauer korrekt mit einer ganzen Zahl in Go?
Dauer mit Ganzzahl in Go multiplizieren
Die Frage stellt sich, wenn versucht wird, eine zufällige Verzögerung in eine Funktion zum Testen gleichzeitiger Goroutinen einzuführen. Durch die Einführung der folgenden Zeile wird erwartet, dass die Funktion bis zu einer Sekunde benötigt, um zurückzukehren:
time.Sleep(rand.Int31n(1000) * time.Millisecond)
Dieser Ansatz löst jedoch einen Fehler aus, der auf eine Nichtübereinstimmung zwischen den Typen int32 und time.Duration hinweist. Der Schlüssel zur Lösung dieses Problems liegt in der Konvertierung von int32 in eine time.Duration:
time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)
Durch Konvertieren des aus rand.Int31n(1000) erhaltenen int32-Werts in eine time.Duration können die beiden Typen sein multipliziert, sodass die Funktion für ein zufälliges Intervall von bis zu einer Sekunde in den Ruhezustand versetzt werden kann.
Das obige ist der detaillierte Inhalt vonWie multipliziere ich eine Dauer korrekt mit einer ganzen Zahl in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!