Rumah >pembangunan bahagian belakang >Golang >Cara Selamat Menukar int64 kepada int dalam Go: Mengelakkan Kehilangan dan Limpahan Data?
Penukaran Int64 kepada Int dalam Go: Mencegah Ralat
Dalam Go, menukar int64 kepada int boleh mencabar apabila membandingkan kedua-dua jenis. Artikel ini meneroka pendekatan yang disyorkan untuk penukaran ini untuk mengelakkan hasil yang tidak dijangka.
Penukaran kepada Jenis yang Lebih Besar
Untuk memastikan ketepatan, amalan terbaik untuk menukar jenis yang lebih kecil (dalam kes ini, int) kepada jenis yang lebih besar (int64). Ini boleh dicapai menggunakan penukaran jenis:
var a int var b int64 int64(a) < b
Kebimbangan Pemangkasan
Apabila membandingkan nilai, menukar jenis yang lebih besar kepada yang lebih kecil boleh menyebabkan kehilangan data atau pemotongan. Pertimbangkan contoh berikut:
var x int32 = 0 var y int64 = math.MaxInt32 + 1 // y == 2147483648 if x < int32(y) { // This evaluates to false because int32(y) is -2147483648 }
Dalam senario ini, penukaran int64(y) kepada int32 menghasilkan -2147483648, kehilangan bit tertib tinggi nilai asal.
Penukaran Dioptimumkan untuk maxInt
Untuk nilai maxInt int64, pertimbangkan untuk menggunakan penukaran berikut:
for a := 2; a < int(maxInt); a++ { // Execute correctly even if maxInt exceeds the maximum value of int }
Dengan menukar maxInt kepada int dan menggunakan int() untuk memastikan subjenis int yang betul digunakan, isu limpahan boleh dielakkan sambil memastikan perbandingan yang diingini .
Kesimpulan
Mendekati penukaran int64 kepada int dengan pertimbangan teliti saiz jenis membantu mencegah ralat dan memastikan perbandingan yang tepat. Dengan mematuhi prinsip menukar jenis yang lebih kecil kepada yang lebih besar, pembangun boleh mengelakkan kehilangan data dan memperoleh hasil yang boleh dipercayai apabila bekerja dengan pelbagai jenis angka dalam Go.
Atas ialah kandungan terperinci Cara Selamat Menukar int64 kepada int dalam Go: Mengelakkan Kehilangan dan Limpahan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!