Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menduakan Struktur dengan Ahli Setara tetapi Jenis Tidak Serupa dalam Go?

Bagaimanakah Saya Boleh Menduakan Struktur dengan Ahli Setara tetapi Jenis Tidak Serupa dalam Go?

Linda Hamilton
Lepaskan: 2024-12-11 18:47:14
asal
761 orang telah melayarinya

How Can I Duplicate a Struct with Equivalent Members but Dissimilar Types in Go?

Struktur Penduaan dengan Ahli Setara dan Jenis Tidak Serupa

Pertimbangkan senario berikut: anda mempunyai dua struktur yang berbeza, Foo dan Bar, setiap satu mempunyai struktur yang sama ahli tetapi berbeza dalam jenis asasnya. Objektif anda adalah untuk memindahkan kandungan satu struktur kepada yang lain.

Dalam keadaan ini, 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
}
Salin selepas log masuk

Memandangkan contoh foo bagi Foo dan bar Bar, bagaimana bolehkah bar diduplikasi daripada foo?

Penyelesaian: Taip Penukaran

Memandangkan jenis asas Foo dan Bar adalah setara dari segi struktur, penukaran jenis boleh digunakan untuk mengubah jenis objek. Kod berikut menunjukkan cara menyalin nilai Foo ke nilai Bar menggunakan penukaran:

foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)
Salin selepas log masuk

Nota Keserasian Jenis

Adalah penting untuk diingat bahawa teknik penukaran jenis ini hanya berkesan apabila jenis asas struktur pada asasnya adalah sama, kecuali untuk sebarang tag struct.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menduakan Struktur dengan Ahli Setara tetapi Jenis Tidak Serupa dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan