Maison  >  Article  >  développement back-end  >  Comment attacher une fonction à une structure dans Golang

Comment attacher une fonction à une structure dans Golang

王林
王林original
2024-08-06 02:58:52943parcourir

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
}
}

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
}

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
}

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())

}

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())

}

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!

Déclaration:
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