Rumah >pembangunan bahagian belakang >Golang >Cara Membandingkan Masa Dengan Tepat dalam Go: Bilakah Anda Harus Menggunakan `Equal()` Daripada `==`?
Perbandingan Masa dalam Go
Apabila membandingkan masa dalam Go, adalah penting untuk mempertimbangkan potensi nuansa yang dikaitkan dengan zon waktu dan bacaan jam monoton. Pengendali kesaksamaan (==) membandingkan bukan sahaja kejadian masa tetapi juga lokasi dan bacaan jam monoton.
Untuk menggambarkan perkara ini, pertimbangkan kod berikut:
<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>
Dalam senario ini , perbandingan res != jangkakan akan sentiasa dinilai kepada benar, walaupun masa sebenar yang diwakili oleh kedua-dua res dan jangkaan adalah sama. Ini kerana medan dalam struktur Masa, yang mewakili masa dinding, masa lanjutan, lokasi dan bacaan jam monoton, adalah berbeza untuk setiap kejadian.
Untuk membandingkan masa dengan betul, disyorkan untuk gunakan kaedah res.Equal(expect), yang mengambil kira perbezaan potensi antara medan dalam dan memberikan perbandingan yang lebih tepat. Dokumentasi untuk kaedah Equal menyatakan:
"Perhatikan bahawa operator Go == membandingkan bukan sahaja masa segera tetapi juga Lokasi dan bacaan jam monoton. Oleh itu, nilai Masa tidak boleh digunakan sebagai kunci peta atau pangkalan data tanpa terlebih dahulu menjamin bahawa Lokasi yang sama telah ditetapkan untuk semua nilai, yang boleh dicapai melalui penggunaan kaedah UTC atau Setempat, dan bacaan jam monotonik telah dilucutkan dengan menetapkan t = t.Round(0)."
Dengan menggunakan res.Equal(expect), anda memastikan bahawa perbandingan hanya berdasarkan masa serta-merta dan mengabaikan sebarang potensi perbezaan dalam lokasi atau bacaan jam monotonik.
Atas ialah kandungan terperinci Cara Membandingkan Masa Dengan Tepat dalam Go: Bilakah Anda Harus Menggunakan `Equal()` Daripada `==`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!