Golang Struct

Golang Struct
Pour faire court, une structure ou une structure est une collection de champs avec des types de données définies. Les structures sont très utiles et améliorent la flexibilité des programmes. Les structures sont probablement votre meilleur pari si vous avez des données qui sont mieux représentées comme une unité. Considérez-le comme une version légère de la programmation orientée objet.

GO vous permet de créer et d'utiliser des structures à l'aide de types intégrés ou définis par l'utilisateur.

Ce guide fera un voyage et explorera comment les structures fonctionnent dans le langage de programmation Go.

Déclarant une structure

La syntaxe ci-dessous montre comment créer une structure en Go:

TypeSTURT_NAMESTRUCT
field_1 data_type
field_2 data_type

field_ndata_type

Nous commençons par appeler le mot-clé type. Vient ensuite le nom de la structure. Le nom de la structure peut être défini par l'utilisateur (tant qu'il suit les règles de dénomination en Go). Nous utilisons ensuite le mot-clé struct, suivi d'une paire de bretelles bouclées.

À l'intérieur des accolades, nous définissons divers champs qui composent la structure. Le nom du champ est suivi par son type de données.

Declare Struct - Exemple

L'exemple de code ci-dessous définit une structure appelée employé. Il contient 5 champs avec divers types de données.

TypeEmployee Struct
Chaîne de noms
Âge int
Bool à la retraite
Chaîne de département
Salaire float64

Ce qui précède crée une structure d'employée contenant des champs de différents types.

Remarque: Si vous souhaitez exporter la structure et ses champs vers d'autres packages, assurez-vous que les noms commencent par des lettres majuscules. Sinon, la portée est limitée à ce package.

Instanciation de structure

Définir une structure signifie que nous créons seulement un plan. Pour créer un objet hors de la structure, nous devons en créer une instance.

Pour créer une instance d'une classe en Go, commencez par le mot-clé var suivi du nom de l'instance.

L'exemple ci-dessous crée une instance de la structure des employés.

Employé Var EMP

Une fois que nous avons créé une instance de la structure, nous pouvons accéder aux champs en utilisant la notation de points comme indiqué:

Employé Var EMP
empiler.Name = "Thomas J"
empiler.Âge = 35
empiler.Retraité = faux
empiler.Department = "DevOps Ingénieur"
empiler.Salaire = 130000.50

Une fois que nous avons défini les champs de l'Instace, nous pouvons l'imprimer comme:

fmt.Println (emp)

Les extraits de l'extrait ci-dessus:

$ go Run Struct.aller
Thomas J 35 Faux DevOps Engineer 130000.5

Instanciation structure - littéral

Vous pouvez également créer une instance d'une structure en utilisant la méthode littérale struct. L'exemple ci-dessous montre utilise la structure littérale pour créer une instance d'une structure.

var emp1 = employé "Mary A", 26, false, "développeur de jeu", 150000.dix
fmt.Println (EMP1)

L'exemple ci-dessus crée une instance de la classe et définit les champs sans utiliser la note de point.

Instanciation struct - nouveau mot-clé

Si vous ne souhaitez pas définir les valeurs pendant la création d'instance, vous pouvez utiliser le nouveau mot-clé. Par exemple:

var emp2 = nouveau (employé)

Une fois créé, nous pouvons accéder aux champs d'instance et définir des valeurs comme:

EMP2.Name = "Judy L"
EMP2.Âge = 60
EMP2.Retraité = vrai
EMP2.Department = "Ressources humaines"
EMP2.Salaire = 119000.99

Champs de structure d'accès

Pour accéder aux champs d'une structure, allez nous fournir l'opérateur de points. Nous commençons par le nom de l'instance de structure puis le nom du champ.

Par exemple, pour obtenir le nom de l'EMP2, nous pouvons faire:

fmt.Println (emp2.Nom)

Cela devrait renvoyer la valeur stockée par le champ spécifié.

Méthodes de structure

Nous pouvons également ajouter une méthode à une structure en utilisant le récepteur de méthode. Considérez l'exemple ci-dessous qui crée une méthode pour la structure des employés.

func (e employee) info () String
fmt.Printf ("Nom:% s \ n Âge:% d \ n Retire.Nom, E.Âge, E.Retraité, e.Département, E.Salaire)
retourner "fait"

Une fois la méthode déclarée, nous pouvons créer une instance et définir les champs comme:

employé var e
e.Name = "Thomas J"
e.Âge = 35
e.Retraité = faux
e.Department = "DevOps Ingénieur"
e.Salaire = 130000.50

Enfin, nous pouvons appeler la méthode comme:

fmt.Println (e.Info())

Lors de l'appel de la méthode, nous devons obtenir une sortie comme:

Nom: Thomas J
Âge: 35
Retraité: faux
Département: ingénieur DevOps
Salaire: 130000.500000
Fait

Type de champ de structure

Vous pouvez découvrir le type de champ en utilisant le package de réflexion. Par exemple, pour obtenir le type du champ retraité, nous pouvons faire:

fmt.Println (réfléchir.Typeof (e.À la retraite))

Le code ci-dessus renvoie le type de champ comme:

::sortir
bool

Comparaison de structure

Vous pouvez vérifier si une structure est égale à une autre en utilisant l'opérateur de comparaison. Notez qu'une structure est définie comme égale si tous les champs ont une valeur égale.

Remarque: tous les types de données ne sont pas comparables.

L'exemple ci-dessous crée deux structures et les compare en utilisant l'opérateur ==.


employé var e
e.Name = "Thomas J"
e.Âge = 35
e.Retraité = faux
e.Department = "DevOps Ingénieur"
e.Salaire = 130000.50
var emp2 = nouveau (employé)
EMP2.Name = "Judy L"
EMP2.Âge = 60
EMP2.Retraité = vrai
EMP2.Department = "Ressources humaines"
EMP2.Salaire = 119000.99
Si e == * emp2
fmt.Println ("Les structures sont égales")
autre
fmt.Println ("Structures pas égales")

Étant donné que les structures ne sont pas égales, le bloc else est exécuté.

INDICE: Les valeurs vides et zéro sont considérées comme égales.

Conclusion

phew!

C'était un tutoriel exceptionnel sur le travail avec des structures dans Go Lang. Ce tutoriel, cependant, ne couvre que les bases. Il y a beaucoup plus d'opérations que vous pouvez faire avec les structures.

Continuez à pratiquer et consultez nos tutoriels Go pour en savoir plus.