Heim >Backend-Entwicklung >Golang >Wie multipliziere ich eine ganze Zahl mit „time.Duration' in Go?

Wie multipliziere ich eine ganze Zahl mit „time.Duration' in Go?

DDD
DDDOriginal
2024-12-02 22:05:17304Durchsuche

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

Problem: Multiplizieren der Dauer mit einer ganzen Zahl in Go

Beim Versuch, gleichzeitige Goroutinen durch Einführung einer zufälligen Verzögerung zu testen, gibt der Compiler den folgenden Fehler aus :

.\crawler.go:49: invalid operation: rand.Int31n(1000) * time.Millisecond (mismatched types int32 and time.Duration)

Lösung: Konvertieren zwischen Typen

Der Fehler tritt auf, weil int32 (der Rückgabetyp von rand.Int31n(1000)) nicht mit time.Duration (dem für time.Sleep() erforderlichen Typ) kompatibel ist. Um dieses Problem zu beheben, muss der ganzzahlige Wert vor der Multiplikation in eine Dauer umgewandelt werden. Dies kann mit dem folgenden Code erreicht werden:

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

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