Heim >Backend-Entwicklung >Golang >Wie multipliziere ich eine Go „time.Duration' korrekt mit einer ganzen Zahl?
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!