Les fonctions et les méthodes sont deux manières de définir des blocs de code dans Go. La portée de la fonction est globale ou privée du package, et la portée de la méthode est de type privé. Les fonctions n'ont pas de paramètres de récepteur, alors que les méthodes ont des paramètres de récepteur qui donnent accès aux membres du type. Le cas pratique montre la fonction de calcul de moyenne sans utiliser de structure, et la méthode de calcul de moyenne pondérée avec une structure.
La différence entre les fonctions et les méthodes dans Go
Introduction
Dans le langage Go, les fonctions et les méthodes sont deux manières de définir des blocs de code. Bien qu’il existe de nombreuses similitudes, ils présentent également des différences fondamentales. Cet article plongera dans les différences entre les fonctions et les méthodes dans Go et fournira des exemples pratiques.
Fonction
Une fonction est un bloc de code indépendant du type qui effectue une opération sur une entrée et renvoie une sortie. Les fonctions sont définies à l'aide du mot-clé func
, suivi du nom de la fonction, de la liste des paramètres et du type de valeur de retour. func
关键字定义,后面跟着函数名、参数列表和返回值类型。
示例:
func sum(a, b int) int { return a + b }
调用函数:
result := sum(10, 20)
方法
方法是附加到类型上的函数。它允许该类型的实例访问和操作该方法的实现。方法使用接收器参数定义,后面跟着方法名、参数列表和返回值类型。
示例:
type Person struct { Name string } func (p Person) Greet() string { return "Hello, " + p.Name + "!" }
调用方法:
p := Person{"John"} greeting := p.Greet()
差异
特性 | 函数 | 方法 | |||
---|---|---|---|---|---|
定义 | func | <receiver type> <method name> | |||
func Avg(numbers []float64) float64 { sum := 0.0 for _, num := range numbers { sum += num } return sum / float64(len(numbers)) } Copier après la connexion | Appel d'une fonction : | type WeightedAvg struct { Numbers []float64 Weights []float64 } func (w WeightedAvg) Avg() float64 { weightedSum := 0.0 for i := range w.Numbers { weightedSum += w.Numbers[i] * w.Weights[i] } totalWeight := 0.0 for _, w := range w.Weights { totalWeight += w } return weightedSum / totalWeight } Copier après la connexion | |||
Les méthodes sont des fonctions attachées à un type. Il permet aux instances du type d'accéder et de manipuler l'implémentation de la méthode. Les méthodes sont définies à l'aide des paramètres du récepteur, suivis du nom de la méthode, de la liste des paramètres et du type de valeur de retour. | Exemple : | rrreee | |||
rrreee | Différence |
Caractéristiques | Fonctions | Méthodes th> th> |
---|
Définitionfunc
<type de récepteur> <nom de la méthode>
Global, package privé
type privé
paramètres du récepteur
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!