Menyalin Struktur dengan Ahli Yang Sama dan Jenis Berbeza
Dalam Go, adalah mungkin untuk menghadapi situasi di mana dua struct berkongsi ahli yang sama tetapi mempunyai jenis yang berbeza. Sebagai contoh, pertimbangkan takrifan struktur berikut:
type Common struct { Gender int From string To string } type Foo struct { Id string Name string Extra Common } type Bar struct { Id string Name string Extra Common }
Memandangkan contoh Foo (bernama foo) dan tika Bar (bar bernama), bolehkah kita menyalin nilai dari foo ke bar?
Penyelesaian Menggunakan Penukaran Jenis
Memandangkan jenis asas Foo dan Bar ialah sama kecuali untuk teg struct, kita boleh memanfaatkan penukaran jenis untuk menukar jenis. Ini melibatkan langkah berikut:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
Taman permainan Contoh
Anda boleh menguji penyelesaian ini di Go Playground:
https://go.dev/play/p/j5jL1XFs-zG
Nota: Penukaran hanya berfungsi apabila jenis asas adalah sama kecuali untuk teg struktur. Jenis kompleks seperti peta, kepingan atau tatasusunan dalam struct memerlukan pendekatan yang lebih terperinci untuk menyalin nilai.
Atas ialah kandungan terperinci Bolehkah penukaran jenis Go menyalin nilai antara struct dengan ahli yang sama tetapi jenis yang berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!