Maison > développement back-end > Golang > le corps du texte

Comment définir et utiliser des types personnalisés à l'aide du langage Go ?

WBOY
Libérer: 2024-06-05 12:41:56
original
747 Les gens l'ont consulté

Dans Go, les types personnalisés peuvent être définis à l'aide du mot-clé type (struct) et contenir des champs nommés. Ils sont accessibles via des opérateurs d'accès aux champs et peuvent être associés à des méthodes pour manipuler l'état de l'instance. Dans les applications pratiques, les types personnalisés sont utilisés pour organiser des données complexes et simplifier les opérations. Par exemple, un système de gestion des étudiants utilise un type personnalisé Étudiant pour stocker les informations sur les étudiants et fournir des méthodes de calcul de la moyenne pondérée cumulative et de l'assiduité.

如何使用 Go 语言定义和使用自定义类型?

Comment définir et utiliser des types personnalisés à l'aide du langage Go

Dans le langage Go, les types personnalisés sont une fonctionnalité puissante qui vous permet de définir vos propres types complexes pour répondre à des besoins spécifiques. De cette façon, vous pouvez organiser votre code, améliorer la lisibilité et réduire les erreurs.

Définissez un type personnalisé

Utilisez le mot-clé type pour définir un nouveau type personnalisé : type 关键字可以定义一个新的自定义类型:

type Person struct {
    name string
    age  int
}
Copier après la connexion

在这个示例中,我们定义了一个名为 Person 的类型,它具有两个字段:name(一个字符串)和 age(一个整数)。

访问和操作自定义类型

一旦定义了一个自定义类型,你就可以创建该类型的变量并访问其字段:

// 创建一个 Person 类型的新实例
person := Person{name: "John", age: 30}

// 访问 person 实例的字段
fmt.Println(person.name) // "John"
fmt.Println(person.age)  // 30
Copier après la connexion

方法

自定义类型可以定义方法,这些方法是附加到该类型上的函数。方法可以访问和修改类型实例的状态:

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"
}
Copier après la connexion

实战案例:学生管理系统

让我们通过一个实战案例来展示自定义类型如何用于解决实际问题。考虑一个学生管理系统,你需要跟踪学生的信息,如姓名、成绩和出席情况。

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()
    }
}
Copier après la connexion

在这个示例中,Student 类型具有姓名、成绩和出勤率字段。GetAverageGrade 方法计算学生的平均成绩,而 mainrrreee

Dans cet exemple, nous définissons un nouveau type personnalisé nommé Person Un type qui comporte deux champs : name (une chaîne) et age (un entier). 🎜🎜Accès et manipulation des types personnalisés🎜🎜Une fois qu'un type personnalisé est défini, vous pouvez créer des variables de ce type et accéder à ses champs : 🎜rrreee🎜Méthodes🎜🎜Les types personnalisés peuvent définir des méthodes, qui sont attachées aux fonctions sur les types. Les méthodes peuvent accéder et modifier l'état des instances de type : 🎜rrreee🎜Cas pratique : Système de gestion des étudiants🎜🎜Utilisons un cas pratique pour montrer comment les types personnalisés peuvent être utilisés pour résoudre des problèmes pratiques. Envisagez un système de gestion des étudiants dans lequel vous devez suivre les informations sur les étudiants telles que les noms, les notes et l'assiduité. 🎜rrreee🎜Dans cet exemple, le type Student comporte des champs de nom, de note et de présence. La méthode GetAverageGrade calcule la note moyenne d'un élève, tandis que la fonction main montre comment utiliser un type personnalisé pour créer une instance d'élève et accéder à ses informations. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!