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
Freigeben: 2024-12-02 22:05:17
Original
266 Leute haben es durchsucht

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage