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!