Maison  >  Article  >  développement back-end  >  méthode de la fonction Golang

méthode de la fonction Golang

WBOY
WBOYoriginal
2023-05-16 12:08:39394parcourir

Golang est l'un des langages de programmation les plus populaires actuellement. L'une de ses caractéristiques est l'excellente conception des fonctions et des méthodes. Cet article présentera en détail les connaissances pertinentes sur les fonctions et méthodes de Golang.

1. Fonction

Syntaxe de base de la fonction Golang :

func function_name( [parameter list] ) [return_types] {
   //函数体
}

La liste des paramètres de la fonction et son type de valeur de retour sont tous deux facultatifs et n'ont pas besoin d'être écrits. Si la fonction n'a qu'une seule valeur de retour et que son type est un type sans interface, les parenthèses peuvent être omises.

Par exemple :

func add(x int, y int) int {
   return x + y
}

func main() {
   fmt.Println(add(1, 2))
}

La fonction add reçoit deux paramètres de type int, et le type de valeur de retour est également int La fonction est appelée via l'expression add(1, 2) et sa valeur de retour est affichée. La sortie est 3.

Les fonctions Golang prennent en charge plusieurs valeurs de retour. Par exemple :

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("hello", "world")
   fmt.Println(a, b)
}

La fonction swap reçoit deux paramètres de type chaîne et le type de valeur de retour est deux types de chaîne, c'est-à-dire que la valeur de retour est deux chaînes, via une affectation multiple a, b := swap("hello", " world" ) Attribuez les valeurs de retour de la fonction à a et b respectivement, et enfin affichez hello world.

2. Méthode

En langage Golang, une méthode fait référence à une fonction sur un certain type de récepteur, qui est une classe. Ce type peut être une structure (struct) ou n’importe quel type personnalisé.

Le format de définition de la méthode est le suivant :

func (variable_name type) function_name([parameter list]) [return_types] {
    //函数体  
}

où variable_name est une instance du type (type), et function_name est la méthode du type.

Par exemple :

type Rectangle struct {
   length, width int
}

func (r Rectangle) area() int {
   return r.length * r.width
}

func main() {
   r := Rectangle{length: 10, width: 5}
   fmt.Println("area: ", r.area())
}

Le code ci-dessus définit le type Rectangle, qui a deux champs : longueur et largeur, et définit également la méthode zone(), c'est donc une classe. Dans la déclaration de la méthode, le récepteur est de type Rectangle, la méthode est nommée Area() et la valeur de retour est de type int.

L'instruction suivante teste cette classe en créant une instance Rectangle nommée r et en appelant sa méthode Area().

Le résultat de l'exécution est :

area: 50

La méthode peut également avoir un récepteur de pointeur, qui est un pointeur pointant vers le type. Par exemple :

type Circle struct {
   radius float64
}

func (c *Circle) area() float64 {
   return math.Pi * c.radius * c.radius
}

func main() {
   c := Circle{radius: 5}
   fmt.Println("area:", c.area())
}

Le code ci-dessus définit le type Circle, qui a un rayon de champ. Il définit également la méthode Area() et pointe vers le type via un récepteur de pointeur. Par conséquent, la méthode Area() modifiera la valeur sur l’instance Circle.

Enfin, nous devons noter que tous les types dans Golang peuvent avoir des méthodes à moins qu'ils ne soient explicitement marqués comme type de copie (récepteur). Cependant, dans certains cas, notamment dans les industries à haute performance, il est plus efficace d'utiliser des récepteurs à pointeur. Cependant, vous devez vous rappeler ces règles car si vous écrivez accidentellement la mauvaise méthode, cela provoquera des erreurs dans votre programme.

3. Résumé

Dans le langage Golang, les fonctions et les méthodes (classes) sont les unités de programmation de base. En apprenant la structure grammaticale des fonctions, nous pouvons facilement définir et appeler des fonctions, rendant la structure du programme plus claire et plus concise. En même temps, la méthode est intégrée à la classe et fait partie de la classe, elle encapsule donc les variables d'instance et les méthodes de la classe. De cette manière, nous pouvons gérer plus facilement diverses informations et méthodes du programme et éviter le gaspillage de ressources.

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
Article précédent:utilisation avancée de GolangArticle suivant:utilisation avancée de Golang