Golang est un langage de programmation typé statiquement qui est efficace, concis, sûr et simultané. Les fonctions et méthodes sont l'un de ses composants de base. Cet article présentera en détail les fonctions et méthodes de Golang.
Fonction
Une fonction est un bloc de code réutilisable qui peut être appelé plusieurs fois dans un programme. Dans Golang, la définition de fonction utilise le mot-clé func
, et sa syntaxe de base est la suivante : func
,其基本语法如下:
func functionName(parameters) returnType { // 函数体 return result }
其中,functionName
表示函数名称,parameters
表示函数的形参列表,returnType
表示函数的返回值类型,result
表示函数的返回值。
例如,以下是一个简单的计算两个数之和的函数:
func add(x int, y int) int { return x + y }
在 Golang 中,函数可以具有多个返回值。例如,以下是一个返回两个数的最小值和最大值的函数:
func minMax(x int, y int) (int, int) { if x < y { return x, y } else { return y, x } }
可以通过使用下划线 _
来忽略某些返回值。例如,以下是一个仅返回最小值的函数:
func min(x int, y int) int { if x < y { return x } else { return y } }
方法
方法是一种特殊的函数,只能与某种特定类型的变量相关联,并且可以访问该变量的属性和方法。在 Golang 中,方法是使用 func
关键字定义的,其基本语法如下:
func (receiver type) methodName(parameters) returnType { // 方法体 return result }
其中,receiver
表示变量类型,type
表示变量类型名称,methodName
表示方法名称,parameters
表示方法的形参列表,returnType
表示方法的返回值类型,result
表示方法的返回值。
例如,以下是一个描述矩形的结构体和其计算面积的方法:
type Rect struct { width float64 height float64 } func (r Rect) Area() float64 { return r.width * r.height }
在 Golang 中,方法可以具有指针接收器和值接收器。指针接收器允许方法修改其调用者的值,而值接收器则不允许。在上面的示例中,r Rect
func (r *Rect) Resize(scale float64) { r.width *= scale r.height *= scale }
functionName
représente le nom de la fonction, et parameters représente la fonction La liste de paramètres formels, <code>returnType
représente le type de valeur de retour de la fonction et result
représente la valeur de retour de la fonction. Par exemple, voici une fonction simple qui calcule la somme de deux nombres : rrreee
Dans Golang, les fonctions peuvent avoir plusieurs valeurs de retour. Par exemple, voici une fonction qui renvoie le minimum et le maximum de deux nombres :rrreee
Certaines valeurs de retour peuvent être ignorées en utilisant le trait de soulignement_
. Par exemple, voici une fonction qui renvoie uniquement la valeur minimale : rrreee
Méthode 🎜🎜Une méthode est une fonction spéciale qui ne peut être associée qu'à une variable d'un certain type et qui a accès aux propriétés et méthodes de cette variable. Dans Golang, les méthodes sont définies à l'aide du mot-cléfunc
, et leur syntaxe de base est la suivante : 🎜rrreee🎜Parmi elles, receiver
représente le type de variable, et type
Représente le nom du type de variable, methodName
représente le nom de la méthode, parameters
représente la liste des paramètres formels de la méthode, returnType
représente le type de valeur de retour de la méthode, result
représente la valeur de retour de la méthode. 🎜🎜Par exemple, voici une structure décrivant un rectangle et sa méthode de calcul de l'aire : 🎜rrreee🎜En Golang, les méthodes peuvent avoir des récepteurs de pointeurs et des récepteurs de valeurs. Les récepteurs de pointeur permettent à une méthode de modifier la valeur de son appelant, contrairement aux récepteurs de valeur. Dans l'exemple ci-dessus, r Rect
est un récepteur de valeur car il n'utilise pas de pointeur. 🎜🎜Par exemple, voici une méthode avec un récepteur pointeur qui modifie la taille d'un rectangle : 🎜rrreee🎜 Notez que le type du récepteur pointeur est un type pointeur, et l'utilisation d'un récepteur pointeur modifiera la valeur de l'appelant. 🎜🎜Résumé🎜🎜Les fonctions et méthodes sont des composants de code importants dans Golang. Une fonction est un bloc de code réutilisable qui peut renvoyer zéro, une ou plusieurs valeurs. Une méthode est une fonction qui ne peut être associée qu'à une variable d'un type spécifique et qui a accès aux propriétés et méthodes de cette variable. Dans Golang, les méthodes peuvent avoir des récepteurs de pointeurs et des récepteurs de valeurs permettant à la méthode de modifier la valeur de son appelant, contrairement aux récepteurs de valeurs. 🎜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!