Heim >Backend-Entwicklung >Golang >Wie multipliziere ich eine Dauer korrekt mit einer ganzen Zahl in Go?

Wie multipliziere ich eine Dauer korrekt mit einer ganzen Zahl in Go?

Linda Hamilton
Linda HamiltonOriginal
2024-12-17 04:38:24531Durchsuche

How to Correctly Multiply a Duration by an Integer 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn