Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Antara Go Structs dengan Medan Berbeza?

Bagaimana untuk Menukar Antara Go Structs dengan Medan Berbeza?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 04:14:02813semak imbas

 How to Convert Between Go Structs with Different Fields?

Penukaran Struktur dalam Go

S: Saya mempunyai dua struct dengan medan berbeza. Bagaimanakah saya boleh menukar pembolehubah jenis A kepada jenis B, di mana A mengandungi hanya medan penting dan B mengandungi medan tambahan? Adakah mungkin untuk melakukan penukaran ini secara langsung atau adakah saya perlu menyalin medan secara manual?

J: Dalam Go, penukaran struct boleh dilakukan dengan memanfaatkan ciri pembenaman. Ini membolehkan anda menyarang medan satu struct dalam yang lain. Sebagai contoh, dalam kes anda, anda mempunyai struct A dengan dua medan (a dan b) dan struct B yang membenamkan struct A dan menambah medan tambahan (c dan berpotensi lebih banyak lagi).

Untuk menukar daripada A kepada B, anda hanya boleh mencipta struct B dan membenamkan contoh A di dalamnya:

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

type B struct {
    A
    c string
}

func main() {
    // create structA of type A
    structA := A{a: 42, b: "foo"}

    // convert to type B
    structB := B{A: structA}

    // access the fields of structB
    fmt.Println(structB.a, structB.b, structB.c) // Output: 42 foo (additional value)
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Menukar Antara Go Structs dengan Medan Berbeza?. 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