Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memanjangkan Jenis Tersuai dalam Go Sambil Mengekalkan Kaedah Sedia Ada?

Bagaimanakah Saya Boleh Memanjangkan Jenis Tersuai dalam Go Sambil Mengekalkan Kaedah Sedia Ada?

Susan Sarandon
Lepaskan: 2024-12-07 09:50:11
asal
1067 orang telah melayarinya

How Can I Extend Custom Types in Go While Preserving Existing Methods?

Memelihara Kaedah sambil Memperluas Jenis Tersuai

Semasa bekerja dengan jenis yang dinamakan untuk JSON unmarshalling, anda mungkin menghadapi isu mengakses kaedah yang dimiliki oleh jenis asas. Contohnya, mentakrifkan jenis StartTime bernama, yang diperoleh daripada masa. Masa dan cuba mengakses kaedah Date()nya.

Untuk mengatasi had ini dan menambah kaedah pada jenis sedia ada sambil mengekalkan kaedah asalnya, benamkan jenis sedia ada. Pembenaman menyediakan cara yang mudah untuk mempromosikan medan dan kaedah daripada jenis tanpa nama terbenam kepada jenis baharu.

Contohnya:

type StartTime struct {
    time.Time
}
Salin selepas log masuk

Dalam coretan ini, kami membenamkan masa.Taip masa tanpa nama dalam Masa Mula. Menurut spesifikasi Go untuk jenis struct, semua medan dan kaedah dalam medan tanpa nama dipromosikan dan boleh diakses terus daripada jenis lampiran.

Kini, anda boleh memanggil Date() dan mana-mana kaedah masa lain dengan lancar. .Masa menggunakan contoh StartTime. Pendekatan ini membolehkan anda mencipta jenis bernama dengan fungsi lanjutan sambil mengekalkan keupayaan asal jenis asas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Jenis Tersuai dalam Go Sambil Mengekalkan Kaedah Sedia Ada?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan