Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memanggil Kaedah Jenis Dasar pada Jenis Dinamakan dalam Go?

Bagaimanakah Saya Boleh Memanggil Kaedah Jenis Dasar pada Jenis Dinamakan dalam Go?

Susan Sarandon
Lepaskan: 2024-12-06 04:43:09
asal
629 orang telah melayarinya

How Can I Call Underlying Type Methods on a Named Type in Go?

Kaedah Memanggil Jenis Dinamakan

Dalam Go, jenis bernama yang dibuat menggunakan kata kunci jenis adalah jenis yang berbeza daripada jenis asasnya. Akibatnya, kaedah yang tergolong dalam jenis asas tidak boleh digunakan secara langsung pada jenis yang dinamakan.

Untuk menyelesaikan isu ini dan melanjutkan jenis bernama dengan kaedah tambahan sambil mengekalkan kefungsian asalnya, teknik pembenaman boleh digunakan . Dengan membenamkan jenis asas secara awanama dalam jenis yang dinamakan, kaedah dan medan jenis terbenam menjadi dipromosikan dan boleh diakses dalam jenis yang dinamakan.

Sebagai contoh, jika anda mempunyai jenis bernama StartTime yang membungkus masa.Masa nilai:

type StartTime time.Time

func (st *StartTime) UnmarshalJSON(b []byte) error {...}
Salin selepas log masuk

Untuk mengakses kaedah masa.Masa pada jenis StartTime, benamkan masa.Masa tanpa nama dalam StartTime:

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

Kini, anda boleh memanggil kaedah seperti Date() pada StartTime seolah-olah ia ditakrifkan secara langsung pada jenis:

myStartTime.Date()
Salin selepas log masuk

Pendekatan ini membolehkan sambungan lancar bagi menamakan jenis dengan kaedah tambahan sambil mengekalkan kefungsian asal jenis asas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Kaedah Jenis Dasar pada Jenis Dinamakan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan