Zeitvergleich in Go
Beim Zeitvergleich in Go ist es wichtig, die möglichen Nuancen im Zusammenhang mit Zeitzonen und monotonen Uhrenanzeigen zu berücksichtigen. Der Gleichheitsoperator (==) vergleicht nicht nur die Zeitinstanz, sondern auch den Ort und die monotone Uhranzeige.
Um dies zu veranschaulichen, betrachten Sie den folgenden Code:
<code class="go">expect := time.Date(2016, 12, 12, 1, 2, 3, 4, wib) t1 := time.Date(2016, 12, 12, 1, 2, 3, 4, time.UTC) res := GenerateWIB(t1) if res != expect { fmt.Printf("WIB Expect %+v, but get %+v", expect, res) }</code>
In diesem Szenario , wird der Vergleich res != Expect immer als wahr ausgewertet, auch wenn die tatsächliche Zeit, die von res und Expect dargestellt wird, dieselbe ist. Dies liegt daran, dass die inneren Felder der Zeitstruktur, die die Wandzeit, die erweiterte Zeit, den Ort und den monotonen Uhrstand darstellen, für jede Instanz unterschiedlich sind.
Um die Zeiten korrekt zu vergleichen, wird empfohlen, Folgendes zu tun: Verwenden Sie die Methode res.Equal(expect), die die potenziellen Unterschiede zwischen inneren Feldern berücksichtigt und einen genaueren Vergleich ermöglicht. In der Dokumentation zur Equal-Methode heißt es:
„Beachten Sie, dass der Go ==-Operator nicht nur den Zeitpunkt, sondern auch den Standort und den monotonen Uhrwert vergleicht. Daher sollten Zeitwerte nicht als Karten- oder Datenbankschlüssel verwendet werden.“ ohne zunächst zu garantieren, dass für alle Werte der identische Standort festgelegt wurde, was durch die Verwendung der UTC- oder Local-Methode erreicht werden kann, und dass der monotone Uhrwert durch Setzen von t = t.Round(0) entfernt wurde.“
Durch die Verwendung von res.Equal(expect) stellen Sie sicher, dass der Vergleich ausschließlich auf dem Zeitpunkt basiert und mögliche Unterschiede im Standort oder monotone Uhranzeige ignoriert.
Das obige ist der detaillierte Inhalt vonSo vergleichen Sie Zeiten in Go genau: Wann sollten Sie „Equal()' anstelle von „==' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!