Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menukar antara jenis struct yang berbeza dalam Go?

Bagaimanakah saya boleh menukar antara jenis struct yang berbeza dalam Go?

DDD
DDDasal
2024-10-27 04:25:03764semak imbas

How can I convert between different struct types in Go?

Penukaran Struktur dalam Go

Dalam Go, struct menyediakan cara yang mudah untuk mewakili data dengan medan bernama. Walau bagaimanapun, situasi mungkin timbul di mana seseorang perlu menukar struktur jenis yang berbeza.

Pertimbangkan contoh berikut:

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

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

Andaikan anda mempunyai pembolehubah jenis A dan ingin menukarnya kepada jenis B. Adakah terdapat mekanisme terbina dalam untuk penukaran ini dalam Go?

Jawapannya ialah ya. Dalam Go, medan struct boleh dibenamkan, membolehkan penukaran mudah antara struct. Dalam contoh di atas, B membenamkan A, yang bermaksud ia mengandungi semua medan A sebagai medannya sendiri.

Untuk menukar pembolehubah jenis A kepada jenis B, anda hanya boleh menetapkan nilai A kepada medan A terbenam dalam B. Begini caranya:

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

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

Kod ini memberikan nilai structA kepada medan A terbenam dalam structB, dengan berkesan menukar structA kepada jenis B.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar antara jenis struct yang berbeza dalam Go?. 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