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
284 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!

sumber:php.cn
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