Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menukar antara struct Go menggunakan pembenaman medan?

Bagaimanakah saya boleh menukar antara struct Go menggunakan pembenaman medan?

Susan Sarandon
Susan Sarandonasal
2024-10-27 01:58:30815semak imbas

How can I convert between Go structs using field embedding?

Menukar Antara Go Structs

Apabila bekerja dengan berbilang struct, selalunya perlu untuk menukar data daripada satu struct kepada yang lain. Dalam Go, ini boleh dicapai melalui teknik yang dipanggil pembenaman medan.

Pertimbangkan coretan kod berikut:

<code class="go">type A struct {
    a int
    b string
}

type B struct {
    A // field embedding of A
    c string
    // more fields
}</code>

Dalam contoh ini, struct B membenamkan struct A. Ini bermakna struct B mengandungi semua medan struct A sebagai tambahan kepada medannya sendiri.

Untuk menukar nilai jenis A kepada jenis B, anda hanya boleh menetapkan medan A kepada medan B. Contohnya:

<code class="go">func main() {
    structA := A{a: 42, b: "foo"}

    // assign structA to the embedded A field of structB
    structB := B{A: structA}
}</code>

Melalui pembenaman medan, anda boleh menukar antara struct dengan mudah, menghapuskan keperluan untuk menyalin medan secara manual atau mencipta kaedah penukaran.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar antara struct Go menggunakan pembenaman medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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