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

Que signifie la notation \'(v Version)\' après un nom de fonction dans Go ?

Mary-Kate Olsen
Libérer: 2024-10-30 00:59:02
original
686 Les gens l'ont consulté

What Does the

Parenthèses de fonction dans Go : comprendre la notation (version v)

En tant que nouveau venu sur Go, vous avez peut-être rencontré du code où les parenthèses suivent immédiatement après un nom de fonction. Cela peut prêter à confusion, surtout lorsque vous essayez de faire la différence entre les fonctions et les méthodes.

Dans Go, les parenthèses après le nom d'une fonction indiquent que la fonction est en fait une méthode. Voyons ce que cela signifie :

Méthode : une fonction attachée à un type

Une méthode est une fonction qui opère sur un type de données spécifique. Dans l'exemple que vous avez fourni :

func (v Version) MarshalJSON() ([]byte, error) {
  return json.Marshal(v.String())
}
Copier après la connexion

Le (v Version) avant la fonction MarshalJSON indique qu'il s'agit d'une méthode attachée au type Version. Le v représente le récepteur de la méthode, qui dans ce cas est une valeur de type Version.

Fonction vs méthode : différences et utilisation

Fonctions en Go fonctionnent de manière indépendante et peuvent être appelés sans contexte spécifique. Les méthodes, en revanche, sont liées au type de données pour lequel elles sont définies et ne peuvent être appelées que sur des instances de ce type.

Par exemple, ce qui suit est une fonction qui calcule l'aire d'un rectangle. :

func RectangleArea(length float64, width float64) float64 {
  return length * width
}
Copier après la connexion

Vous pouvez appeler cette fonction comme suit :

area := RectangleArea(5.0, 10.0)
Copier après la connexion

Cependant, si vous avez un type Rectangle avec des champs pour la longueur et la largeur, vous pouvez définir une méthode dessus pour calculer l'aire :

type Rectangle struct {
  Length float64
  Width float64
}

func (r *Rectangle) Area() float64 {
  return r.Length * r.Width
}
Copier après la connexion

Maintenant, vous pouvez appeler la méthode Area sur n'importe quelle instance de Rectangle, comme ceci :

rectangle := Rectangle{5.0, 10.0}
area := rectangle.Area()
Copier après la connexion

En comprenant la différence entre les fonctions et les méthodes, vous pouvez efficacement utilisez des parenthèses après les noms de fonctions pour créer et utiliser des méthodes dans Go.

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: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
Derniers articles par auteur
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!