Rumah > Artikel > pembangunan bahagian belakang > Gunakan golang untuk menukar antara muka dan struktur
Dalam bahasa Go, penegasan boleh digunakan untuk melengkapkan penukaran antara muka dan penukaran struktur. Penukaran antara muka termasuk penegasan jenis dan penegasan nilai, yang digunakan untuk menukar nilai daripada satu jenis antara muka kepada jenis antara muka yang lain. Penukaran struktur digunakan untuk menukar satu struktur kepada struktur lain.
Menggunakan penegasan dalam Go untuk melaksanakan penukaran antara muka dan struktur
Antara muka dalam Go ialah koleksi kaedah yang membenarkan nilai dengan jenis asas yang berbeza untuk melaksanakannya. Penukaran antara muka membolehkan anda menukar nilai daripada satu jenis antara muka kepada jenis antara muka yang lain.
Struktur ialah koleksi medan data yang berkaitan. Kadangkala anda mungkin mahu menukar satu struktur kepada yang lain. Ini boleh dilakukan dengan menggunakan penegasan.
Penukaran Antara Muka
Untuk menukar nilai daripada satu jenis antara muka kepada yang lain, anda boleh menggunakan penegasan. Penegasan datang dalam dua bentuk:
Contoh berikut menunjukkan cara menggunakan penegasan jenis:
package main import "fmt" type Animal interface { Speak() string } type Dog struct {} func (d Dog) Speak() string { return "Woof!" } type Cat struct {} func (c Cat) Speak() string { return "Meow!"} func main() { var animals []Animal animals = append(animals, Dog{}, Cat{}) for _, animal := range animals { if dog, ok := animal.(Dog); ok { fmt.Println("Dog says:", dog.Speak()) } else if cat, ok := animal.(Cat); ok { fmt.Println("Cat says:", cat.Speak()) } } }
Penukaran struktur
Untuk menukar satu struktur kepada yang lain, anda boleh menggunakan penegasan. Contoh berikut menunjukkan cara menggunakan penegasan:
package main import "fmt" type User struct { Name string } type Employee struct { User Salary int } func main() { user := User{"Alice"} employee := Employee{User{"Bob"}, 1000} // 使用断言将 User 转换为 Employee if employee, ok := user.(Employee); ok { fmt.Println("Employee:", employee.Name, employee.Salary) } // 使用断言将 Employee 转换为 User if user, ok := employee.User.(User); ok { fmt.Println("User:", user.Name) } }
Atas ialah kandungan terperinci Gunakan golang untuk menukar antara muka dan struktur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!