Maison > Article > développement back-end > Comment utiliser le passage des paramètres de fonction dans Go ?
Go est un langage de programmation fortement typé, et ses paramètres de fonction sont passés par valeur. Cela signifie que lorsque vous transmettez un paramètre à une fonction, vous faites en fait une copie de la valeur du paramètre et transmettez cette valeur à la fonction pour traitement. Par conséquent, lorsque vous utilisez le passage de paramètres de fonction dans Go, vous devez faire attention aux points suivants :
package main import "fmt" func main() { // 值类型参数传递 var a = 10 fmt.Println("Before call func: ", a) // 输出 10 changeByVal(a) fmt.Println("After call func: ", a) // 输出 10 // 引用类型参数传递 var b = []int{1, 2, 3} fmt.Println("Before call func: ", b) // 输出 [1 2 3] changeByRef(b) fmt.Println("After call func: ", b) // 输出 [4 5] } // 值类型参数传递 func changeByVal(num int) { num = 100 } // 引用类型参数传递 func changeByRef(arr []int) { arr[0] = 4 arr[1] = 5 }Nous pouvons voir cela dans le cas du passage de paramètres de type valeur, même si La valeur du paramètre est modifiée à 100 à l'intérieur de la fonction, mais la variable externe a n'est toujours pas affectée. Dans le cas du passage de paramètres de type référence, le paramètre est modifié à l'intérieur de la fonction et les données réelles en dehors de la fonction sont également affectées.
package main import "fmt" func main() { var a = 10 var b *int b = &a fmt.Println("Before call func: ", a) // 输出 10 changeByPtr(b) fmt.Println("After call func: ", a) // 输出 100 } func changeByPtr(num *int) { *num = 100 }Nous pouvons constater que les données pointées par le pointeur (variable d'origine a) sont modifiées à l'intérieur de la fonction, et les données externes réelles sont également affectées .
package main import "fmt" func main() { printNames("John", "Alice", "Bob") } func printNames(names ...string) { for _, name := range names { fmt.Println(name) } }Dans cet exemple, nous définissons une fonction printNames avec des paramètres de longueur variable, et le type de paramètre qu'elle reçoit est une chaîne. À l'intérieur de la fonction, nous utilisons range pour parcourir tous les paramètres et afficher leurs valeurs une par une. RésuméDans Go, les paramètres de fonction sont transmis par valeur, vous devez donc faire attention à la différence entre les types valeur et les types référence. Lorsque vous devez modifier des données de type référence, vous pouvez utiliser le passage de paramètres de type pointeur. De plus, nous pouvons également utiliser... pour représenter des paramètres de longueur variable, ce qui permet à la fonction de recevoir plus facilement des paramètres de longueur variable.
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!