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

Comment attacher une fonction à une structure dans Golang

王林
Libérer: 2024-08-06 02:58:52
original
1046 Les gens l'ont consulté

How to to attach a function to a struct in Golang

Si vous venez d'autres langages tels que php, C#, Dart, etc., vous serez familiarisé avec la création de méthodes pour les classes. Habituellement, ces méthodes implémentent une action pour cette classe. Dans ces langages POO, vous créez des méthodes dans la portée de la classe telles que :

class ClassName{
....
 function functionName(){
  // perform action
}
}
Copier après la connexion

Au début, vous créez d'abord une structure, puis vous pouvez attacher des récepteurs pour effectuer des actions spécifiques pour la structure. Par exemple, nous avons comme modèle d'utilisateur auquel nous voulons qu'il ait une méthode qui renvoie le nom complet de l'utilisateur, nous l'avons comme indiqué ci-dessous :

type myUser struct{
 FirstName string
LastName string
PostalCode string
DateOfBirth time.Time
}
Copier après la connexion

Ci-dessus, nous venons de créer un type d'utilisateur avec les différents attributs tels que FirstName, LastName .... , nous voulons avoir une méthode qui effectue une action spéciale pour le type 'myUser' dans ce cas, renvoie simplement le formulaire de nom complet les attributs indiqués FirstName, LastName.

Nous pouvons créer une fonction de récepteur fullname qui renvoie une chaîne.

func (user *myUser) fullname() (string, string){
   return user.FirstName ,user.LastName
}

Copier après la connexion

Comment pouvons-nous utiliser cela ? nous pourrions tester cela directement dans la fonction principale juste pour voir comment cela fonctionne :

func main() {

    user := myUser{
        FirstName: "Felix",
        LastName:  "chi",
    }
    fmt.Println(user.fullname())

}
Copier après la connexion

Nous avons donc créé avec succès une méthode de réception pour notre structure myUser. L'ode complète ressemblera à ceci :

package main

import (
    "fmt"
    "time"
)

type myUser struct {
    FirstName   string
    LastName    string
    PostalCode  string
    DateOfBirth time.Time
}

func (user *myUser) fullname() (string, string) {
    return user.FirstName, user.LastName
}

func main() {

    user := myUser{
        FirstName: "Felix",
        LastName:  "chi",
    }
    fmt.Println(user.fullname())

}
Copier après la connexion

Et alors, quelle est la prochaine étape ? allez-y et collez le code sur https://go.dev/play/ pour voir comment cela fonctionne réellement. A voir dans votre prochain post...!!!!

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!

source:dev.to
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