Dalam beberapa tahun kebelakangan ini, Golang (bahasa Go) telah digunakan secara meluas dalam pelbagai bidang, terutamanya dalam pembangunan back-end, di mana kecekapan, kesesuaian, keselamatan dan ciri-ciri lain sangat digemari. Di Golang, penukaran jenis melibatkan banyak aspek, termasuk fungsi penukaran jenis, alias jenis, penegasan jenis antara muka, dsb. Antaranya, fungsi penukaran jenis adalah salah satu kaedah penukaran jenis yang paling biasa digunakan Di bawah ini kami akan memperkenalkan secara terperinci fungsi penukaran jenis yang berkaitan di Golang.
1. Fungsi penukaran jenis
Fungsi penukaran jenis sering dipanggil penukar jenis, dan ia digunakan untuk menukar nilai satu jenis kepada jenis lain. Fungsi penukaran jenis yang paling biasa dalam Golang termasuk string(), int(), float32(), float64(), dsb. Di bawah ini kami akan memperkenalkan penggunaan fungsi penukaran ini satu persatu.
fungsi string() digunakan untuk menukar jenis lain kepada jenis rentetan. Sintaksnya ialah:
func string(v interface{}) string
Pelaksanaannya sangat mudah:
func string(v interface{}) string { switch v := v.(type) { case string: return v case int: return strconv.Itoa(v) case float64: return strconv.FormatFloat(v, 'g', -1, 64) // ... default: return fmt.Sprintf("%v", v) } }
Dalam kod di atas, v ialah sebarang jenis. Apabila v itu sendiri sudah daripada jenis rentetan, hanya kembalikannya terus. Apabila v ialah jenis int, gunakan fungsi strconv.Itoa() untuk menukarnya kepada jenis rentetan. Begitu juga, apabila v ialah jenis float64, gunakan fungsi strconv.FormatFloat() untuk menukarnya kepada jenis rentetan. Akhir sekali, jika v daripada jenis lain, ia ditukar kepada jenis rentetan menggunakan fungsi fmt.Sprintf().
fungsi int() digunakan untuk menukar jenis lain kepada jenis int. Sintaksnya ialah:
func int(v interface{}) int
Pelaksanaannya adalah seperti berikut:
func int(v interface{}) int { switch v := v.(type) { case string: i, err := strconv.Atoi(v) if err != nil { return 0 } return i case int: return v case float64: return int(v) // ... default: return 0 } }
Dalam kod di atas, v ialah sebarang jenis. Apabila v ialah jenis rentetan, gunakan fungsi strconv.Atoi() untuk menukarnya kepada jenis int dan mengembalikan hasil yang ditukar. Apabila v adalah jenis int, nilai v dikembalikan secara langsung. Apabila v daripada jenis float64, gunakan fungsi int() untuk menukarnya kepada menaip int, dan akhirnya mengembalikan hasil yang ditukar. Apabila v daripada jenis lain, nilai 0 dikembalikan.
fungsi float32() digunakan untuk menukar jenis lain kepada jenis float32. Sintaksnya ialah:
func float32(v interface{}) float32
Pelaksanaannya adalah seperti berikut:
func float32(v interface{}) float32 { switch v := v.(type) { case string: f, err := strconv.ParseFloat(v, 32) if err != nil { return 0 } return float32(f) case float32: return v case float64: return float32(v) // ... default: return 0 } }
Dalam kod di atas, v ialah sebarang jenis. Apabila v daripada jenis rentetan, gunakan fungsi strconv.ParseFloat() untuk menukarnya kepada taip float64 dan tukarkannya kepada taip float32 sebelum mengembalikannya. Apabila v adalah jenis float32, nilai v dikembalikan secara langsung. Apabila v daripada jenis float64, gunakan fungsi float32() untuk menukarnya kepada menaip float32 dan mengembalikan hasil yang ditukar. Apabila v daripada jenis lain, nilai 0 dikembalikan.
fungsi float64() digunakan untuk menukar jenis lain kepada jenis float64. Sintaksnya ialah:
func float64(v interface{}) float64
Pelaksanaannya adalah seperti berikut:
func float64(v interface{}) float64 { switch v := v.(type) { case string: f, err := strconv.ParseFloat(v, 64) if err != nil { return 0 } return f case float32: return float64(v) case float64: return v // ... default: return 0 } }
Dalam kod di atas, v ialah sebarang jenis. Apabila v daripada jenis rentetan, gunakan fungsi strconv.ParseFloat() untuk menukarnya kepada menaip float64 dan mengembalikan hasil yang ditukar. Apabila v daripada jenis float32, gunakan fungsi float64() untuk menukarnya kepada menaip float64 dan mengembalikan hasil yang ditukar. Apabila v daripada jenis float64, nilai v dikembalikan secara langsung. Apabila v daripada jenis lain, nilai 0 dikembalikan.
2. Jenis alias
Jenis alias ialah satu lagi kaedah penukaran jenis biasa di Golang. Ia merujuk kepada cara jenis ditakrifkan sebagai nama lain, contohnya:
type MyInt int
Dalam contoh di atas, jenis int ditakrifkan sebagai jenis MyInt. Ini akan membolehkan kami menggunakan jenis MyInt secara langsung untuk penukaran jenis.
3. Penegasan jenis antara muka
Penegasan jenis antara muka ialah cara untuk menukar jenis antara muka kepada jenis lain. Sintaksnya ialah:
v.(T)
di mana v ialah pembolehubah jenis antara muka dan T ialah jenis sasaran yang hendak ditukar. Berikut ialah contoh:
var v interface{} v = 42 if i, ok := v.(int); ok { fmt.Println(i) }
Dalam kod di atas, pembolehubah antara muka kosong v pertama kali ditakrifkan dan diberikan nilai 42. Kedua, tukar v kepada jenis int melalui penegasan jenis antara muka, dan tetapkan nilai yang ditukar kepada pembolehubah i. Akhir sekali, gunakan pembolehubah ok untuk menentukan sama ada penukaran berjaya.
Ringkasan
Penukaran jenis di Golang merangkumi banyak kaedah, antaranya fungsi penukaran jenis merupakan kaedah yang paling biasa digunakan Kami telah memperkenalkan empat fungsi penukaran yang biasa digunakan. Selain itu, jenis alias dan penegasan jenis antara muka juga biasa digunakan kaedah penukaran jenis di Golang. Menguasai penggunaan penukaran jenis ini akan membantu kami membangunkan Golang dengan lebih baik.
Atas ialah kandungan terperinci pakej penukaran jenis golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!