Dalam golang, int dan uint adalah dua jenis integer yang lazimnya perlu ditukar apabila digunakan Terutama apabila melakukan operasi seperti operasi bit, pemadanan jenis tertentu diperlukan ?
Dalam golang, pada asasnya semua penukaran jenis perlu dilakukan secara eksplisit, dan tiada fungsi penukaran automatik. Perkara yang sama berlaku untuk penukaran antara int dan uint, dan penukaran antara keduanya boleh dicapai melalui pelakon.
Berikut ialah beberapa contoh penukaran jenis int dan uint biasa dalam amalan:
package main import ( "fmt" ) func main() { // 将int类型转换为uint类型 var i int = -10 var ui uint = uint(i) fmt.Printf("i=%d, ui=%d\n", i, ui) // 将uint类型转换为int类型 var ui2 uint = 4294967286 //uint最大表示值减一 var i2 int = int(ui2) fmt.Printf("ui2=%d, i2=%d\n", ui2, i2) }
Hasil keluaran:
i=-10, ui=18446744073709551606 ui2=4294967286, i2=-10
Kita boleh mendapati bahawa apabila menukar int Semasa proses penukaran jenis kepada jenis uint, nombor negatif ditukar kepada nilai maksimum jenis uint tolak nilai mutlak, dan kemudian menambah 1. Ini kerana uint ialah jenis integer tidak bertanda dan tidak boleh mewakili nombor negatif. Apabila menukar jenis uint kepada jenis int, limpahan juga mungkin berlaku Contohnya, apabila menukar nilai maksimum jenis uint kepada jenis int, nombor negatif akan diperolehi.
Apabila menukar antara jenis integer yang ditandatangani dan jenis integer yang tidak ditandatangani, anda perlu memberi perhatian kepada beberapa isu Sebagai contoh, dalam jenis uint, mungkin terdapat apa yang dipanggil integer "ditandatangani", iaitu, Pembolehubah. jenis uint mungkin mempunyai ciri negatif. Dalam kes ini, hasil pelik mungkin berlaku apabila menggunakan jenis int untuk menukar jenis uint, jadi ia perlu digunakan dengan berhati-hati.
Ringkasnya, penukaran antara jenis int dan jenis uint perlu ditentukan mengikut situasi tertentu Ia adalah perlu untuk memahami sepenuhnya ciri-ciri dan skop jenis data untuk mengelakkan ralat yang tidak perlu.
Atas ialah kandungan terperinci Bagaimana untuk menukar jenis int kepada jenis uint dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!