Maison  >  Article  >  développement back-end  >  Comment distinguer les fonctions et méthodes golang ?

Comment distinguer les fonctions et méthodes golang ?

WBOY
WBOYoriginal
2024-04-25 15:09:02844parcourir

La différence entre les fonctions et les méthodes Go est que la fonction est définie en dehors du package et ne reçoit pas de récepteur tandis que la méthode est définie dans le type et reçoit le type de récepteur comme premier paramètre ;

如何区分 golang 函数和方法?

Comment distinguer les fonctions et les méthodes Go ?

Dans le langage Go, bien que les fonctions et les méthodes se ressemblent, il existe des différences essentielles entre elles.

Function

  • est définie en dehors de la portée du package et peut être appelée directement.
  • N'accepte pas les récepteurs de type.
func Greet(name string) string {
    return "Hello, " + name + "!"
}

Les méthodes

  • sont définies dans un type et ne peuvent être appelées que via des instances de type.
  • Récepteur de type réception comme premier paramètre.
type Person struct {
    Name string
}

func (p Person) Greet() string {
    return "Hello, " + p.Name + "!"
}

Cas pratique

Le code suivant démontre la différence entre les fonctions et les méthodes :

package main

import "fmt"

func main() {
    // 调用函数
    greeting1 := Greet("Alice")
    fmt.Println(greeting1) // 输出:Hello, Alice!

    // 实例化类型并调用方法
    alice := Person{Name: "Alice"}
    greeting2 := alice.Greet()
    fmt.Println(greeting2) // 输出:Hello, Alice!
}

func Greet(name string) string {
    return "Hello, " + name + "!"
}

type Person struct {
    Name string
}

func (p Person) Greet() string {
    return "Hello, " + p.Name + "!"
}

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