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 }
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!