Golang ialah bahasa pengaturcaraan yang dikuatkuasakan jenis, yang bermaksud bahawa jenis data yang sama mesti digunakan semasa melakukan penetapan pembolehubah atau hantaran parameter. Walau bagaimanapun, terdapat situasi di mana kita perlu menukar satu jenis data kepada yang lain. Ini memerlukan pemutus jenis.
Artikel ini akan membincangkan konsep, penggunaan dan langkah berjaga-jaga bagi jenis paksaan di Golang.
Konsep pemutus jenis
Pemutus jenis adalah untuk menukar nilai satu jenis data kepada nilai jenis data lain, yang biasanya berlaku dalam situasi berikut:
Di Golang, penghantaran jenis boleh digunakan untuk menukar satu jenis data asas kepada yang lain, atau ia boleh digunakan untuk menukar satu jenis tersuai kepada jenis tersuai yang lain.
Penukaran jenis data asas
Di Golang, terdapat beberapa jenis data asas yang boleh dihantar. Ini termasuk: integer, titik terapung dan Boolean.
boleh menukar satu jenis integer kepada jenis integer yang lain. Jika jenis data asal lebih besar daripada jenis sasaran, pemotongan berlaku. Jika jenis data asal lebih kecil daripada jenis sasaran, pengembangan berlaku.
Contohnya:
var a int32 = 100
var b int64
b = int64(a)
fmt.Printf("%T, %vn", b , b)
Hasil output ialah:
int64, 100
boleh menukar terapung jenis titik Tukar kepada jenis titik terapung yang lain. Jika jenis data asal berbeza daripada jenis sasaran, kehilangan ketepatan akan berlaku.
Contohnya:
var a float32 = 10.5
var b float64
b = float64(a)
fmt.Printf("%T, %vn", b , b)
Hasil output ialah:
float64, 10.5
boleh menukar nilai Boolean kepada Jenis integer atau jenis rentetan. Tukar benar kepada 1 dan palsu kepada 0.
Contohnya:
var a bool = true
var b int
b = int(a)
fmt.Printf("%T, %vn", b , b)
Hasil output ialah:
int, 1
Penukaran jenis tersuai
Di Golang, penukaran antara jenis tersuai mesti Lakukan secara eksplisit . Jika anda ingin menukar satu jenis tersuai kepada yang lain, anda perlu melaksanakan dua kaedah berikut:
Contohnya:
taip struct Pelajar{
Name string Age int
}
func (s Student) tostring() string{
return fmt.Sprintf("Name: %s, Age: %d", s.Name, s.Age)
}
taip Teacher struct{
Name string Age int
}
func (t Teacher) tostring() string{
return fmt.Sprintf("Name: %s, Age: %d", t.Name, t.Age)
}
func main() {
s := Student{Name: "小明", Age: 18} t := Teacher(s) // 将Student类型转换为Teacher类型 fmt.Println(t.tostring()) s2 := Student(t) // 将Teacher类型转换为Student类型 fmt.Println(s2.tostring())
}
Hasil output ialah:
Nama: Xiao Ming, Umur: 18
Nama: , Umur: 0
Nota: Apabila menukar jenis tersuai kepada jenis lain, anda mesti memastikan kedua-dua jenis mempunyai medan dan kaedah yang sama.
Jenis penegasan
Selain pemutus taip, Golang juga menyediakan penegasan jenis untuk mendapatkan jenis nilai sebenar dalam antara muka. Di Golang, antara muka adalah konsep yang sangat penting kerana ia boleh menyediakan mekanisme penukaran jenis universal. Apabila kita perlu mendapatkan nilai daripada antara muka, kita perlu menggunakan penegasan jenis.
Contohnya:
antara muka var x{} = 1
i, ok := x.(int)
fmt.Println(i, ok)
Outputnya ialah:
1 benar
Jika nilai antara muka x mengandungi nilai jenis int, maka pembolehubah i akan mengandungi nilai dan pembolehubah ok akan menjadi benar. Jika nilai antara muka x tidak mengandungi nilai jenis int, pembolehubah i akan mengandungi nilai lalai 0 dan pembolehubah ok akan menjadi palsu.
Nota: Untuk jenis antara muka yang tidak boleh ditegaskan, penegasan taip akan panik. Oleh itu, sebelum membuat penegasan jenis, anda mesti menggunakan pertimbangan jenis untuk menyemak jenis sebenar antara muka.
Ringkasan
Golang menyediakan mekanisme yang mudah dan berkesan untuk paksaan jenis data. Walau apa pun, berhati-hati mesti diambil semasa menghantar jenis data kerana ia boleh menyebabkan kehilangan ketepatan atau pemotongan. Apabila menukar jenis tersuai kepada jenis lain, anda mesti memastikan kedua-dua jenis mempunyai medan dan kaedah yang sama dan anda mesti melaksanakan kaedah penukaran secara eksplisit. Penegasan jenis ialah kaedah untuk mendapatkan jenis sebenar daripada antara muka. Secara ringkasnya, penghantaran jenis data yang betul dan penegasan jenis boleh membantu pengaturcara Golang meningkatkan kecekapan dan kebolehbacaan kod mereka.
Atas ialah kandungan terperinci Bincangkan konsep paksaan jenis di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!