Bagaimana untuk melaksanakan jenis tersuai dalam Go?

WBOY
Lepaskan: 2023-05-10 15:34:36
asal
1144 orang telah melayarinya

Go ialah bahasa pengaturcaraan berorientasikan objek, ditaip secara statik, sekali gus membolehkan pembangun memudahkan kod dan meningkatkan kebolehbacaan melalui jenis tersuai. Dalam artikel ini, kami akan meneroka cara melaksanakan jenis tersuai dalam Go supaya pembangun boleh memanfaatkan ciri ini dengan lebih baik.

  1. Struktur

Struktur dalam Go ialah jenis tersuai yang membolehkan pembangun melaksanakan struktur yang lebih kompleks dengan menggabungkan pembolehubah jenis struktur data. Berikut ialah contoh struktur:

type Person struct {
    name    string
    age     int
    address string
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan struktur bernama Orang, yang mengandungi tiga pembolehubah ahli: nama, umur dan alamat. Pembolehubah ini adalah daripada jenis yang berbeza, tetapi ia dikumpulkan bersama untuk mewakili maklumat tentang seseorang. Kita boleh mencipta objek Orang baharu menggunakan:

person1 := Person{name: "John Doe", age: 30, address: "123 Main St."}
Salin selepas log masuk

Dalam contoh ini, kami telah menggunakan struktur literal untuk memulakan objek person1. Kami kemudiannya boleh mengakses nilai pembolehubah ahli struktur menggunakan notasi titik:

fmt.Println(person1.name)    // John Doe
fmt.Println(person1.age)     // 30
fmt.Println(person1.address) // 123 Main St.
Salin selepas log masuk
  1. Alias ​​Jenis

Alias ​​jenis ialah kaedah menamakan jenis sedia ada ke dalam Cara jenis baru. Ia boleh digunakan untuk memudahkan kod atau mentakrifkan lebih banyak nama deskriptif untuk jenis sedia ada. Berikut ialah contoh alias jenis:

type Celsius float64
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan alias jenis dipanggil Celsius, yang sebenarnya jenis float64. Kami kemudiannya boleh mencipta objek Celsius baharu menggunakan:

temperature := Celsius(23.5)
Salin selepas log masuk

Dalam contoh ini, kami menggunakan cast jenis untuk menukar jenis float64 23.5 kepada jenis Celsius. Kami kemudiannya boleh mengakses nilai pembolehubah suhu menggunakan notasi titik:

fmt.Println(temperature) // 23.5
Salin selepas log masuk
  1. Jenis Tersuai

Jenis tersuai ialah jenis yang membungkus jenis sedia ada dengan cara jenis baharu . Ini boleh digunakan untuk menentukan nama yang lebih deskriptif, menambah kaedah baharu atau menukar gelagat jenis tersebut. Berikut ialah contoh jenis tersuai:

type Feet float64

func (f Feet) Inches() float64 {
    return float64(f * 12)
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan jenis tersuai yang dipanggil Feet, yang sebenarnya merupakan jenis float64. Kami kemudian mentakrifkan kaedah pada jenis Kaki yang dipanggil Inci yang menukar objek Kaki kepada inci dan mengembalikan nilai tersebut. Berikut ialah contoh cara menggunakan objek Kaki:

distance := Feet(10.5)
fmt.Println(distance.Inches()) // 126
Salin selepas log masuk

Dalam contoh ini, kami telah menggunakan kaedah Inci objek Kaki untuk mengira jarak dalam inci. Dengan cara ini kami boleh menggunakan lebih banyak nama deskriptif dalam kod kami dan menambah gelagat tersuai pada jenis sedia ada.

Ringkasnya, jenis tersuai ialah ciri yang sangat berguna dalam Go, yang boleh membantu pembangun memudahkan kod dan meningkatkan kebolehbacaan. Melalui struktur, jenis alias dan jenis tersuai, pembangun boleh dengan mudah mentakrifkan jenis data baharu dan menambahkan gelagat tersuai padanya.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan jenis tersuai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!