Dans le langage Go, après avoir défini une fonction, on peut appeler la fonction via "nom de fonction ()", la syntaxe est "liste de variables de valeur de retour = nom de fonction (liste de paramètres)". Lorsque "()" contient plusieurs paramètres, les variables de paramètres sont séparées par des virgules et n'ont pas besoin de se terminer par un point-virgule ; dans la "liste des variables de valeur de retour", plusieurs valeurs de retour sont séparées par des virgules.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
La fonction constitue la structure logique de l'exécution du code. Dans le langage Go, les composants de base de la fonction sont : le mot-clé func, le nom de la fonction, la liste des paramètres, la valeur de retour, le corps de la fonction et l'instruction de retour. Chaque programme contient de nombreuses fonctions. de code.
Le langage Go étant un langage compilé, l'ordre dans lequel les fonctions sont écrites n'a pas d'importance. Compte tenu des exigences de lisibilité, il est préférable d'écrire la fonction main() au début du fichier et les autres fonctions doivent être écrites dedans. un certain ordre logique (comme l'ordre dans lequel les fonctions sont appelées).
L'objectif principal de l'écriture de plusieurs fonctions est de décomposer un problème complexe qui nécessite de nombreuses lignes de code en une série de tâches simples à résoudre. De plus, la même tâche (fonction) peut être appelée plusieurs fois, ce qui facilite la réutilisation du code (fait). Surtout, les bons programmes accordent une grande attention au principe DRY, c'est-à-dire Don't Repeat Yourself (Don't Repeat Yourself), ce qui signifie que le code qui exécute une tâche spécifique ne peut apparaître qu'une seule fois dans le programme).
La fonction se terminera lorsqu'elle atteindra la dernière ligne du bloc de code }
ou avant l'instruction return. L'instruction return peut avoir zéro ou plusieurs paramètres. Ces paramètres seront utilisés comme valeurs de retour pour l'appelant. L'instruction peut également être utilisée pour terminer la boucle infinie de for ou mettre fin à une goroutine.
Il existe trois types de fonctions dans le langage Go :
La déclaration de fonction inclut le nom de la fonction, formel liste de paramètres, liste de valeurs de retour (peut être omise) et corps de fonction.
func 函数名(形式参数列表)(返回值列表){ 函数体 }
La liste formelle des paramètres décrit le nom du paramètre et le type de paramètre de la fonction. Ces paramètres sont utilisés comme variables locales et leurs valeurs sont fournies par l'appelant du paramètre. La liste des valeurs de retour décrit le nom de la variable et le type de la fonction. valeur de retour de la fonction. Si la fonction renvoie une variable sans nom ou s'il n'y a pas de valeur de retour et que les parenthèses dans la liste des valeurs de retour peuvent être omises.
Une fois la fonction définie, le code actuel peut accéder à la fonction appelée pour exécution en l'appelant. Les variables locales de la fonction avant l'appel seront enregistrées et ne seront pas perdues après la fonction. est terminé, l'exécution du code reprend sur la ligne suivante de la fonction appelante et les variables locales précédentes peuvent également continuer à être accessibles.
Les variables locales au sein d'une fonction ne peuvent être utilisées que dans le corps de la fonction. Une fois l'appel de la fonction terminé, ces variables locales seront libérées et invalides.
Le format d'appel de fonction du langage Go est le suivant :
返回值变量列表 := 函数名(参数列表)
Ce qui suit est une description de chaque partie :
Par exemple, le style d'appel de la fonction d'addition est le suivant :
result := add(1,1)
Le langage Go prend en charge plusieurs valeurs de retour. Plusieurs valeurs de retour peuvent facilement obtenir plusieurs paramètres de retour après l'exécution de la fonction. Le langage Go utilise souvent plusieurs Le dernier paramètre de retour dans la valeur de retour renvoie les erreurs qui peuvent survenir lors de l'exécution de la fonction. L'exemple de code est le suivant :
conn, err := connectToNetwork()
在这段代码中,connectToNetwork 返回两个参数,conn 表示连接对象,err 返回错误信息。
Go语言既支持安全指针,也支持多返回值,因此在使用函数进行逻辑编写时更为方便。
如果返回值是同一种类型,则用括号将多个返回值类型括起来,用逗号分隔每个返回值的类型。
使用 return 语句返回时,值列表的顺序需要与函数声明的返回值类型一致,示例代码如下:
func typedTwoValues() (int, int) { return 1, 2 } func main() { a, b := typedTwoValues() fmt.Println(a, b) }
代码输出结果:
1 2
纯类型的返回值对于代码可读性不是很友好,特别是在同类型的返回值出现时,无法区分每个返回参数的意义。
Go语言支持对返回值进行命名,这样返回值就和参数一样拥有参数变量名和类型。
命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。
下面代码中的函数拥有两个整型返回值,函数声明时将返回值命名为 a 和 b,因此可以在函数体中直接对函数返回值进行赋值,在命名的返回值方式的函数体中,在函数结束前需要显式地使用 return 语句进行返回,代码如下:
func namedRetValues() (a, b int) { a = 1 b = 2 return }
代码说明如下:
func namedRetValues() (a, b int) { a = 1 return a, 2 }
同一种类型返回值和命名返回值两种形式只能二选一,混用时将会发生编译错误,例如下面的代码:
func namedRetValues() (a, b int, int)
编译报错提示:
mixed named and unnamed function parameters
意思是:在函数参数中混合使用了命名和非命名参数。
【相关推荐:Go视频教程】
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!