Heim >Backend-Entwicklung >Golang >Wie multipliziere ich eine Go „time.Duration' korrekt mit einer ganzen Zahl?

Wie multipliziere ich eine Go „time.Duration' korrekt mit einer ganzen Zahl?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 17:55:11313Durchsuche

How to Correctly Multiply a Go `time.Duration` by an Integer?

Dauer mit Ganzzahl in Go multiplizieren

Bei der Arbeit mit gleichzeitigen Goroutinen in Go kann es notwendig sein, zufällige Verzögerungen bei der Funktionsausführung einzuführen, um das Testen zu erleichtern. Um dies zu erreichen, können Sie versuchen, den folgenden Code zu verwenden:

time.Sleep(rand.Int31n(1000) * time.Millisecond)

Das Kompilieren dieses Codes führt jedoch zu einem Fehler, der auf eine Typinkongruenz zwischen int32 und time.Duration hinweist. Dies liegt daran, dass die beiden Typen unterschiedlich sind und nicht direkt multipliziert werden können.

Um dieses Problem zu beheben und eine Dauer korrekt mit einer Ganzzahl zu multiplizieren, müssen Sie den int32 in einen time.Duration-Typ konvertieren. Dies kann mit dem folgenden Code erreicht werden:

time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)

Indem Sie int32 in eine time.Duration umwandeln, erstellen Sie einen gültigen Ausdruck, der zur Angabe der Schlafdauer verwendet werden kann und so effektiv eine zufällige Verzögerung in der einführt Ausführung der Funktion.

Das obige ist der detaillierte Inhalt vonWie multipliziere ich eine Go „time.Duration' korrekt mit einer ganzen Zahl?. 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