Rumah > Artikel > pembangunan bahagian belakang > Pengenalan terperinci kepada penukaran jenis di Golang
Golang ialah bahasa pengaturcaraan yang ditaip secara statik, dan penukaran jenis memainkan peranan penting dalam pengaturcaraan harian. Di Golang, penukaran jenis boleh menukar nilai daripada satu jenis kepada jenis lain. Artikel ini akan memperkenalkan penukaran jenis di Golang secara terperinci.
Di Golang, kedua-dua penukaran jenis automatik dan penukaran jenis paksa boleh dilakukan. Penukaran jenis automatik bermakna pengkompil secara automatik menukar satu jenis kepada jenis lain apabila perlu. Contohnya, apabila memberikan nilai jenis integer kepada pembolehubah jenis titik terapung, penukaran jenis dilakukan secara automatik. Casting ialah apabila pengaturcara secara eksplisit menukar nilai daripada satu jenis kepada yang lain. Di Golang, penukaran jenis paksa ditulis sebagai: jenis sasaran (nilai ditukar).
Berikut ialah beberapa contoh penukaran jenis asas:
var i int = 10 var f float64 = float64(i) // int to float64 var u uint = uint(f) // float64 to uint var s string = string(i) // int to string var b []byte = []byte(s) // string to []byte var r rune = rune(i) // int to rune, represents a Unicode code point
Di Golang, penegasan jenis antara muka merujuk kepada menukar Penukar nilai jenis antara muka kepada nilai jenis antara muka yang lain. Walau bagaimanapun, jika tidak selamat untuk menukar daripada salah satu jenis antara muka kepada yang lain, pengkompil akan gagal untuk menyusun. Oleh itu, apabila melakukan penukaran jenis antara muka, jenis awal boleh menjadi superset jenis sasaran, tetapi mesti berpuas hati bahawa jenis sasaran yang ditukar mestilah subset jenis asal.
Berikut ialah contoh penukaran jenis antara muka:
package main import "fmt" type Animal interface { Speak() string } type Cat struct{} func (c Cat) Speak() string { return "cat" } type Dog struct{} func (d Dog) Speak() string { return "dog" } func main() { animals := []Animal{Cat{}, Dog{}, Cat{}, Dog{}} for _, animal := range animals { fmt.Println(animal.Speak()) if v, ok := animal.(Dog); ok { fmt.Println(v, ok) } } }
Di Golang, sebagai tambahan kepada jenis asas dan antara muka jenis Penukaran, anda juga boleh melakukan penukaran jenis tersuai. Penukaran yang mentakrifkan jenis baharu sangat berguna kerana ia menukar jenis baharu kepada jenis lama dan begitu juga sebaliknya. Jika kami tidak mentakrifkannya sebagai jenis menggunakan NewType, kami tidak akan dapat menggunakan fungsi penukaran.
Berikut ialah contoh penukaran jenis tersuai:
type Celsius float64 type Fahrenheit float64 const ( AbsoluteZeroC Celsius = -273.15 FreezingC Celsius = 0 BoilingC Celsius = 100 ) func CToF(c Celsius) Fahrenheit { return Fahrenheit(c*9/5 + 32) } func FToC(f Fahrenheit) Celsius { return Celsius((f - 32) * 5 / 9) } func main() { fmt.Printf("%g\n", BoilingC-FreezingC) // "100" °C boilingF := CToF(BoilingC) fmt.Printf("%g\n", boilingF-CToF(FreezingC)) // "180" °F }
Ringkasan
Artikel ini memperkenalkan penukaran jenis di Golang, termasuk jenis asas, jenis antara muka dan penukaran jenis tersuai . Apabila melakukan penukaran jenis, kami mesti mematuhi spesifikasi keselamatan penukaran jenis untuk memastikan program kami betul. Penukaran jenis diperlukan dalam banyak senario Reka bentuk penukaran jenis yang baik boleh meningkatkan prestasi program dan amat penting dalam pengaturcaraan sebenar.
Atas ialah kandungan terperinci Pengenalan terperinci kepada penukaran jenis di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!