Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menentukan dan menggunakan jenis tersuai menggunakan bahasa Go?
Dalam Go, jenis tersuai boleh ditakrifkan menggunakan kata kunci jenis (struct) dan mengandungi medan bernama. Mereka boleh diakses melalui pengendali akses medan dan boleh mempunyai kaedah yang dilampirkan untuk memanipulasi keadaan contoh. Dalam aplikasi praktikal, jenis tersuai digunakan untuk menyusun data yang kompleks dan memudahkan operasi. Sebagai contoh, sistem pengurusan pelajar menggunakan pelajar jenis tersuai untuk menyimpan maklumat pelajar dan menyediakan kaedah untuk mengira purata mata gred dan kehadiran.
Dalam bahasa Go, jenis tersuai ialah ciri berkuasa yang membolehkan anda menentukan jenis kompleks anda sendiri untuk memenuhi keperluan khusus. Dengan cara ini anda boleh menyusun kod anda, meningkatkan kebolehbacaan dan mengurangkan ralat.
Gunakan kata kunci type
关键字可以定义一个新的自定义类型:
type Person struct { name string age int }
在这个示例中,我们定义了一个名为 Person
的类型,它具有两个字段:name
(一个字符串)和 age
(一个整数)。
一旦定义了一个自定义类型,你就可以创建该类型的变量并访问其字段:
// 创建一个 Person 类型的新实例 person := Person{name: "John", age: 30} // 访问 person 实例的字段 fmt.Println(person.name) // "John" fmt.Println(person.age) // 30
自定义类型可以定义方法,这些方法是附加到该类型上的函数。方法可以访问和修改类型实例的状态:
type Person struct { name string age int } func (p Person) Greet() { fmt.Println("Hello, my name is", p.name) } func main() { person := Person{name: "John", age: 30} person.Greet() // "Hello, my name is John" }
让我们通过一个实战案例来展示自定义类型如何用于解决实际问题。考虑一个学生管理系统,你需要跟踪学生的信息,如姓名、成绩和出席情况。
type Student struct { name string grades []float64 attendance float64 } func (s Student) GetAverageGrade() float64 { total := 0.0 for _, grade := range s.grades { total += grade } return total / float64(len(s.grades)) } func main() { students := []Student{ {name: "John", grades: []float64{90, 85, 95}, attendance: 0.9}, {name: "Jane", grades: []float64{80, 90, 85}, attendance: 0.8}, } for _, s := range students { fmt.Println("Student:", s.name) fmt.Println("Average Grade:", s.GetAverageGrade()) fmt.Println("Attendance:", s.attendance) fmt.Println() } }
在这个示例中,Student
类型具有姓名、成绩和出勤率字段。GetAverageGrade
方法计算学生的平均成绩,而 main
rrreee
umur
(integer). 🎜🎜Mengakses dan memanipulasi jenis tersuai🎜🎜Setelah jenis tersuai ditakrifkan, anda boleh mencipta pembolehubah jenis itu dan mengakses medannya: 🎜rrreee🎜Kaedah🎜🎜Jenis tersuai boleh menentukan kaedah, yang dilampirkan pada Fungsi pada jenis. Kaedah boleh mengakses dan mengubah suai status contoh jenis: 🎜rrreee🎜Kes praktikal: Sistem pengurusan pelajar🎜🎜Mari kita gunakan kes praktikal untuk menunjukkan cara jenis tersuai boleh digunakan untuk menyelesaikan masalah praktikal. Pertimbangkan sistem pengurusan pelajar di mana anda perlu menjejak maklumat pelajar seperti nama, gred dan kehadiran. 🎜rrreee🎜Dalam contoh ini, jenis GetAverageGrade
mengira gred purata pelajar, manakala fungsi utama
menunjukkan cara menggunakan jenis tersuai untuk mencipta tika pelajar dan mengakses maklumatnya. 🎜Atas ialah kandungan terperinci Bagaimana untuk menentukan dan menggunakan jenis tersuai menggunakan bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!