Bilakah Alias ​​Jenis dan Definisi Jenis dalam Pergi Berbeza dalam Pewarisan Kaedah?

Linda Hamilton
Lepaskan: 2024-11-19 18:51:03
asal
430 orang telah melayarinya

When Do Type Aliases and Type Definitions in Go Differ in Method Inheritance?

Alias ​​Jenis lwn. Definisi Jenis

Dalam Go, pengisytiharan jenis boleh dikelaskan kepada dua kategori: pengisytiharan alias dan definisi jenis. Memahami perbezaan ini adalah penting untuk memahami gelagat ingin tahu jenis alias seperti durWithoutMethods dan sameAsDuration.

Pengisytiharan Alias

Pengisytiharan Alias ​​hanya mencipta pengecam baharu untuk jenis sedia ada. Pengecam baharu ini boleh ditukar ganti dengan nama asal. Sebagai contoh, taip dur = masa. Tempoh mencipta alias untuk masa. Tempoh. Menggunakan dur dan masa. Tempoh untuk mengisytiharkan pembolehubah menghasilkan gelagat yang sama.

Definisi Jenis

Sebaliknya, definisi taip mencipta jenis baharu. Mereka menanggalkan semua kaedah daripada jenis asas. Ini bermakna jika anda mentakrifkan jenis x struct { y time.Duration }, x tidak akan mewarisi sebarang kaedah masa.Duration. Ini kerana masa.Tempoh ialah jenis mentah, jenis tanpa kaedah dilampirkan.

Menggunakan ini pada Contoh

  • durWithMethods dur: Pengisytiharan alias ini mencipta jenis durWithMethods baharu yang mempunyai dur sebagai jenis asasnya. Sejak dur membenamkan masa.Duration, dur dan durWithMethods mewarisi Tempoh.String().
  • durWithoutMethods time.Duration: Takrif jenis ini mencipta jenis baru durWithoutMethods yang berasingan daripada masa.Duration. Akibatnya, durWithoutMethods tidak mewarisi Duration.String().
  • type sameAsDuration = time.Duration: Pengisytiharan alias jenis ini menandakan sameAsDuration dan time.Duration ialah jenis yang sama. Oleh itu, sameAsDuration juga mempunyai kaedah String().

Atas ialah kandungan terperinci Bilakah Alias ​​Jenis dan Definisi Jenis dalam Pergi Berbeza dalam Pewarisan Kaedah?. 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