Heim >Backend-Entwicklung >Golang >Warum kann ich „time.Millisecond' in Go nicht mit einem „int' multiplizieren?
Verwechslung mit der Zeit. Millisekunde * int
In Go erfordern Operatoren Operanden identischer Typen, es sei denn, die Operation beinhaltet Verschiebungen oder nicht typisierte Konstanten. Wenn andernfalls ein Operand eine untypisierte Konstante ist (z. B. ein ganzzahliges Literal), wird er in den Typ des anderen Operanden konvertiert.
Betrachten Sie die folgenden Beispiele:
// Works because 1000 is an untyped constant and is converted to `time.Duration`. time.Sleep(1000 * time.Millisecond)
Allerdings Der folgende Code schlägt fehl:
// Fails because `v` is an `int` and `time.Duration` are different types. var v = 1000 time.Sleep(v * time.Millisecond)
Um dieses Problem zu beheben, konvertieren Sie die int-Variable v in time.Duration, bevor Sie sie in der Sleep-Funktion verwenden:
time.Sleep(time.Duration(v) * time.Millisecond)
Diese Konvertierung erstellt den Operanden Typen identisch sind, sodass der Vorgang erfolgreich sein kann.
Das obige ist der detaillierte Inhalt vonWarum kann ich „time.Millisecond' in Go nicht mit einem „int' multiplizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!