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 ;
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
func Greet(name string) string { return "Hello, " + name + "!" }
Les méthodes
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!