Menukar Int64 kepada Int dalam Go: Panduan
Penukaran jenis ialah tugas biasa dalam pengaturcaraan dan dalam Go, ia adalah mudah untuk menukar antara dua jenis integer. Memahami perbezaan antara int dan int64 adalah penting untuk penukaran yang tepat dan cekap.
Cabarannya
Apabila bekerja dengan int64 (64-bit integer) dan int (32- bit integer) dalam Go, pembangun mungkin menghadapi keperluan untuk membandingkan nilai kedua-dua jenis ini. Walau bagaimanapun, menukar int64 kepada int boleh menjadi rumit, kerana perbandingan langsung mungkin membawa kepada hasil yang tidak dijangka disebabkan oleh limpahan atau aliran bawah.
Sebagai contoh, kesilapan biasa ialah menukar terus nilai int64 kepada int, seperti yang ditunjukkan dalam coretan kod yang disediakan:
for a := 2; a < maxInt; a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
Di sini, maxInt ialah nilai int64 dan keadaan gelung (a < maxInt) cuba membandingkan int32 (a) dengan int64. Ini boleh membawa kepada keputusan yang salah.
Penyelesaian
Untuk membandingkan nilai int64 dengan tepat dengan int dalam Go, pendekatan yang betul ialah menukar jenis int kepada int64. Ini memastikan kedua-dua nilai adalah daripada jenis yang sama, menghapuskan risiko limpahan atau aliran bawah:
for a := 2; a < int64(maxInt); a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
Dengan menghantar a ke int64, keadaan gelung membandingkan dengan betul nilai int64 kepada nilai int64 yang lain, memastikan perbandingan yang betul .
Tambahan Nota
Apabila melakukan penukaran jenis ini, adalah penting untuk mempertimbangkan potensi limpahan atau aliran bawah. Jika nilai yang ditukar terlalu besar untuk jenis sasaran, ia boleh mengakibatkan limpahan, membawa kepada nilai yang salah. Sebaliknya, jika nilai yang ditukar adalah terlalu kecil, ia boleh mengakibatkan aliran bawah, yang boleh memotong nilai kepada sempadan bawah.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Int64 kepada Int dalam Go dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!