Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Memindahkan Data dengan Cekap Antara Go Structs dengan Ahli Yang Sama tetapi Berbeza Jenis?
Salin Struktur dengan Ahli Yang Sama dan Jenis Varian
Dalam Go, bukan sesuatu yang luar biasa untuk mempunyai struct dengan ahli yang sama tetapi jenis yang berbeza. Pertimbangkan contoh 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 dan Bar, bagaimanakah kita boleh memindahkan data dari satu ke yang lain?
Penyelesaian: Penukaran
Memandangkan jenis asas Foo dan Bar adalah sama selain daripada teg struct, Go menawarkan penyelesaian yang mudah: penukaran. Dengan menukar nilai Foo kepada Bar taip, kami menimpa data sedia ada dalam Bar dengan berkesan. Berikut ialah kodnya:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
Contoh
Mari kita uji penukaran dalam contoh taman permainan: https://go.dev/play/p/1W3EXQVXVhS.
Batasan
Perlu diperhatikan bahawa penukaran hanya berfungsi apabila jenis asas adalah sama kecuali struct tag. Jika jenis asas berbeza dengan ketara, mencipta fungsi salinan khusus akan diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memindahkan Data dengan Cekap Antara Go Structs dengan Ahli Yang Sama tetapi Berbeza Jenis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!