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

Comment distinguer les fonctions et méthodes golang ?

WBOY
Libérer: 2024-04-25 15:09:02
original
885 Les gens l'ont consulté

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 + "!"
}
Copier après la connexion

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 + "!"
}
Copier après la connexion

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 + "!"
}
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal