Rumah > pembangunan bahagian belakang > Golang > Mengapakah `==` Mengembalikan `salah` Apabila Membandingkan Struktur `masa.Masa` Pergi yang Sama?

Mengapakah `==` Mengembalikan `salah` Apabila Membandingkan Struktur `masa.Masa` Pergi yang Sama?

Patricia Arquette
Lepaskan: 2024-12-17 15:18:11
asal
340 orang telah melayarinya

Why Does `==` Return `false` When Comparing Identical Go `time.Time` Structs?

Mengapa Membandingkan Dua Struktur Masa dengan Nilai Tarikh dan Masa yang Sama Menggunakan "==" Menghasilkan Salah?

Dalam konteks Go pengaturcaraan, masa. Jenis masa ialah struct yang mewakili titik masa tertentu. Apabila membandingkan dua kejadian masa. Masa menggunakan operator kesamaan ==, adalah penting untuk memahami nuansa operasi ini.

Secara lalai, apabila membandingkan masa. Nilai masa dengan ==, bukan sahaja nilai masa tetapi juga lokasi yang berkaitan dinilai untuk kesaksamaan. Struktur masa.Masa termasuk *medan Lokasi, yang menentukan zon waktu atau lokasi nilai masa.

Dalam contoh kod yang disediakan, dua kejadian masa.Masa (t1 dan t2) dibuat dan kemudian dibandingkan . Walaupun komponen masa mereka adalah setara, medan *Lokasi mereka mungkin merujuk lokasi yang berbeza. Perbezaan lokasi ini menyebabkan perbandingan == kembali palsu.

Untuk mengesahkan ini, kod menunjukkan bahawa t1.Location() dan t2.Location() adalah tidak sama, walaupun kedua-duanya mewakili UTC yang sama zon waktu. Ini kerana dalam Go, walaupun dua lokasi merujuk kepada zon waktu yang sama, ia mungkin bukan tika *Lokasi yang sama.

Untuk memastikan == kembali benar untuk nilai masa dengan komponen dan lokasi masa yang sama , seseorang boleh menggunakan kaedah Time.UTC() atau Time.Local() untuk menetapkan *Lokasi yang sama secara eksplisit kepada kedua-dua nilai. Sebagai alternatif, kaedah Time.Equal() boleh digunakan, yang mengabaikan lokasi apabila membandingkan nilai masa dan hanya mempertimbangkan komponen masa.

Atas ialah kandungan terperinci Mengapakah `==` Mengembalikan `salah` Apabila Membandingkan Struktur `masa.Masa` Pergi yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan