Bagaimanakah Saya Boleh Menukar int64 kepada int dalam Go dengan Selamat?

Mary-Kate Olsen
Lepaskan: 2024-11-14 20:47:02
asal
655 orang telah melayarinya

How Can I Safely Convert int64 to int in Go?

Penukaran Int64 yang Cekap kepada int dalam Go

Apabila berurusan dengan jenis data yang berbeza dalam Go, terutamanya apabila membandingkan nilai, ia sering menjadi perlu untuk menukar antara jenis. Satu senario biasa ialah penukaran daripada int64 kepada int. Artikel ini menyediakan pendekatan terbaik untuk penukaran sedemikian, menyerlahkan kemungkinan perangkap.

Strategi Penukaran

Proses menukar int64 kepada int dalam Go adalah mudah. Untuk melakukan penukaran, hanya gunakan ungkapan penukaran jenis:

var a int
var b int64

int64(a) < b
Salin selepas log masuk

Apabila membandingkan nilai jenis yang berbeza, adalah penting untuk menukar jenis yang lebih kecil kepada jenis yang lebih besar. Menukar ke arah lain boleh mengakibatkan pemangkasan data dan perbandingan yang salah.

Contoh Perbandingan

Pertimbangkan kod Go 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
}
Salin selepas log masuk

Dalam kes ini, cuba membandingkan x kepada int32(y) akan mengakibatkan penilaian yang salah kerana int32(y) memotong nilai sebenar y dan secara berkesan mengubahnya kepada -2147483648. Untuk mengelakkan isu sedemikian, anda dinasihatkan untuk menukar jenis yang lebih kecil kepada jenis yang lebih besar.

Aplikasi Praktikal

Dalam contoh kod khusus anda, menukar maxInt kepada int memerlukan pelarasan berikut:

for a := 2; a < int(maxInt); a++ {
Salin selepas log masuk

Pengubahsuaian ini memastikan perbandingan dilakukan dengan betul. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika maxInt melebihi nilai maksimum jenis int pada sistem anda, penukaran mungkin gagal. Untuk mengurangkan risiko ini, pertimbangkan untuk menggunakan jenis data yang lebih besar, seperti int64, untuk maxInt untuk mengelakkan kemungkinan limpahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar int64 kepada int dalam Go dengan Selamat?. 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