Rumah > pembangunan bahagian belakang > Golang > Jenis Dinamakan lwn. Pembenaman: Bagaimana Saya Menambah Kaedah pada Jenis Go Sedia Ada?

Jenis Dinamakan lwn. Pembenaman: Bagaimana Saya Menambah Kaedah pada Jenis Go Sedia Ada?

DDD
Lepaskan: 2024-12-11 08:55:12
asal
961 orang telah melayarinya

Named Types vs. Embedding: How Do I Add Methods to an Existing Go Type?

Menambah Kaedah pada Jenis Sedia Ada: Jenis Dinamakan lwn. Benam

Apabila berurusan dengan jenis yang dinamakan, adalah penting untuk memahami perbezaan antara mencipta jenis baharu dan membenamkan jenis sedia ada. Mari kita terokai cara menambah kaedah pada jenis sedia ada sambil mengekalkan kaedah asalnya.

Kes 1: Jenis Dinamakan

Jika anda menggunakan kata kunci jenis untuk menentukan jenis baharu , ia akan berbeza daripada jenis asas. Contohnya, dalam coretan kod yang disediakan:

type StartTime time.Time
Salin selepas log masuk

StartTime ialah jenis baharu dan ia tidak akan mempunyai kaedah masa. Masa, seperti Date(). Ini kerana jenis yang dinamakan tidak mewarisi kaedah daripada jenis asasnya.

Kes 2: Membenamkan

Untuk menambah kaedah kepada jenis sedia ada tanpa kehilangan kaedah asalnya, gunakan membenamkan. Ini melibatkan mencipta struct baharu yang membenamkan jenis sedia ada. Sebagai contoh, kita boleh menulis semula kod di atas menggunakan pembenaman:

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

Dalam kes ini, StartTime membenamkan masa. Masa, bermakna ia merangkumi semua kaedah dan medannya.

Bagaimana Benam Berfungsi

Apabila struct membenamkan struct lain tanpa nama (tanpa menyatakan medan nama), medan dan kaedah struct terbenam dinaikkan pangkat kepada struct benam. Ini bermakna ia boleh digunakan terus pada contoh struct pembenaman.

Contoh Penggunaan

Dengan pembenaman, anda boleh mengakses kaedah Masa Mula dan Masa.

func main() {
    s := StartTime{time.Now()}
    fmt.Println(s.Date()) // Will output the current date
}
Salin selepas log masuk

Kesimpulan

Jika anda perlu mengubah suai tingkah laku atau menambah kaedah pada jenis sedia ada, pertimbangkan untuk menggunakan pembenaman. Ia membolehkan anda mengekalkan kaedah asal sambil memanjangkan kefungsian jenis.

Atas ialah kandungan terperinci Jenis Dinamakan lwn. Pembenaman: Bagaimana Saya Menambah Kaedah pada Jenis Go 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan