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

DDD
Lepaskan: 2024-10-27 04:25:03
asal
781 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!