Dengan populariti Golang, semakin ramai pembangun mula mempelajari dan menggunakan bahasa pengaturcaraan Golang. Penukaran jenis angka adalah masalah biasa di Golang. Artikel ini akan membincangkan cara menukar jenis angka dalam Golang.
Bahagian Pertama: Jenis Angka di Golang
Di Golang, terdapat pelbagai jenis jenis angka seperti berikut:
- int
- int8
- int16
- int32
- int64
- uint
- uint8
- uint16
- uint16
- uint >
uint64- float32
- float64
- complex64
- complex128
kecuali int, semua jenis mempunyai bilangan bit tertentu. Sebagai contoh, int8 mewakili integer 8-bit dan int16 mewakili integer 16-bit. Jenis ini mempunyai skop yang berbeza, jadi berhati-hati perlu diambil untuk mengekalkan skop yang betul semasa melakukan penukaran, jika tidak limpahan atau tingkah laku yang tidak ditentukan mungkin berlaku.
Bahagian 2: Penukaran jenis angka
Di Golang, penukaran jenis angka boleh dilakukan dengan menggunakan operator penukaran jenis. Operator penukaran jenis diwakili sebagai T(x), dengan T ialah jenis yang hendak ditukar dan x ialah nilai yang hendak ditukar. Contohnya, untuk menukar pembolehubah jenis float64 kepada pembolehubah jenis int, anda boleh menggunakan kod berikut:
f := 3.14159
i := int(f)
Salin selepas log masuk
Penukaran jenis angka di Golang boleh dibahagikan kepada dua jenis:
penukaran rugi
Penukaran rugi merujuk kepada menukar jenis angka yang lebih besar kepada jenis angka yang lebih kecil. Penukaran ini boleh mengakibatkan kehilangan ketepatan, pemotongan dan limpahan. Contohnya, apabila menukar pembolehubah jenis int kepada pembolehubah jenis int8, jika nilai asal melebihi julat int8, limpahan akan berlaku.
Berikut ialah contoh:
i := 1000
i8 := int8(i) // 结果为-24
Salin selepas log masuk
Dalam contoh ini, pembolehubah i jenis int ditukar kepada pembolehubah i8 jenis int8. Oleh kerana julat int8 hanya -128 hingga 127, nilai i melebihi julat int8, menyebabkan limpahan. Jadi nilai untuk i8 ialah -24 dan bukannya 1000 asal.
Penukaran tanpa rugi
Penukaran tanpa rugi merujuk kepada menukar jenis berangka yang lebih kecil kepada jenis berangka yang lebih besar. Penukaran ini tidak mengakibatkan kehilangan ketepatan atau pemotongan. Contohnya, apabila menukar pembolehubah jenis uint8 kepada pembolehubah jenis uint16, tiada kehilangan ketepatan atau pemotongan berlaku.
Berikut ialah contoh:
u8 := uint8(255)
u16 := uint16(u8) // 结果为255
Salin selepas log masuk
Dalam contoh ini, pembolehubah jenis uint8 u8 ditukar kepada pembolehubah jenis uint16 u16. Memandangkan uint16 mempunyai julat yang lebih besar daripada uint8, penukaran adalah tanpa kerugian dan tiada ketepatan yang hilang.
Bahagian 3: Langkah berjaga-jaga untuk penukaran jenis angka
Walaupun penukaran jenis angka di Golang adalah mudah, terdapat beberapa perkara yang anda perlu beri perhatian semasa melakukan penukaran.
- Limpahan mungkin berlaku
Limpahan mungkin berlaku dengan menukar jenis angka yang lebih besar kepada jenis angka yang lebih kecil. Contohnya, apabila menukar pembolehubah jenis int kepada pembolehubah jenis int8, jika nilai asal melebihi julat int8, limpahan akan berlaku.
- Kemungkinan kehilangan ketepatan
Kemungkinan kehilangan ketepatan dengan menukar nombor titik terapung yang lebih besar kepada nombor titik terapung yang lebih kecil. Contohnya, apabila menukar pembolehubah jenis float64 kepada pembolehubah jenis float32, ketepatan mungkin hilang.
- Jenis angka yang sama juga memerlukan penukaran eksplisit
Walaupun kedua-dua jenis angka mempunyai bilangan digit yang sama, penukaran eksplisit masih diperlukan di Golang. Sebagai contoh, apabila menukar pembolehubah jenis int kepada pembolehubah jenis int32, anda perlu menggunakan operator penukaran eksplisit.
- Jenis angka yang berbeza tidak boleh dibandingkan secara langsung
Jenis angka yang berbeza tidak boleh dibandingkan secara langsung, jadi sebelum membandingkan dua pembolehubah berangka, ia perlu ditukar kepada jenis yang sama.
Kesimpulan
Di Golang, penukaran jenis berangka ialah operasi biasa. Anda boleh menukar antara jenis angka yang berbeza dengan menggunakan operator penukaran jenis. Apabila melakukan penukaran jenis angka, ketahui bahawa penukaran lossy boleh mengakibatkan kehilangan ketepatan, pemotongan dan limpahan. Tambahan pula, pembolehubah berangka pelbagai jenis tidak boleh dibandingkan secara langsung, jadi ia perlu ditukar kepada jenis yang sama.
Atas ialah kandungan terperinci penukaran jenis berangka golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!