Att Skicka Arrayer till Funktioner
En värdefull funktion är möjligheten att skicka arrayer till funktioner så att vi kan använda dessa arrayer inom andra scope, särskilt när de är lokalt deklarerade.
Den generella syntaxen för ett arrayargument i en funktion är följande:
argName [expectedArraySize] dataType
Att implementera detta i en funktion skulle se ut ungefär så här:
index.go
123func myFunc(arr [5] int) { // code here }
Följande exempel visar hur man skickar en array till en funktion och använder den:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
I Go (Golang) skickas arrayer alltid som värde till funktioner. Detta innebär att när en array skickas till en funktion skapas en lokal kopia av den ursprungliga arrayen inuti funktionen. Följaktligen kommer eventuella ändringar som görs på arrayen inuti funktionen inte att påverka den ursprungliga arrayen, eftersom data som används i funktionen är en kopia av originalet.
Följande program illustrerar att ändringar av arrayen inom funktionen inte påverkar den ursprungliga arrayen:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Observera
Till skillnad från att skicka med värde finns begreppet att skicka med referens, där en referens till arrayen eller variabeln skickas in i funktionen. Följaktligen innebär en ändring av värdet inuti funktionen även en ändring av källan. I vissa programmeringsspråk skickas arrayer med referens som standard.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain the difference between passing by value and passing by reference in more detail?
Are there ways to modify the original array inside a function in Go?
Can you show an example of passing an array by reference in Go?
Awesome!
Completion rate improved to 1.96
Att Skicka Arrayer till Funktioner
Svep för att visa menyn
En värdefull funktion är möjligheten att skicka arrayer till funktioner så att vi kan använda dessa arrayer inom andra scope, särskilt när de är lokalt deklarerade.
Den generella syntaxen för ett arrayargument i en funktion är följande:
argName [expectedArraySize] dataType
Att implementera detta i en funktion skulle se ut ungefär så här:
index.go
123func myFunc(arr [5] int) { // code here }
Följande exempel visar hur man skickar en array till en funktion och använder den:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
I Go (Golang) skickas arrayer alltid som värde till funktioner. Detta innebär att när en array skickas till en funktion skapas en lokal kopia av den ursprungliga arrayen inuti funktionen. Följaktligen kommer eventuella ändringar som görs på arrayen inuti funktionen inte att påverka den ursprungliga arrayen, eftersom data som används i funktionen är en kopia av originalet.
Följande program illustrerar att ändringar av arrayen inom funktionen inte påverkar den ursprungliga arrayen:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Observera
Till skillnad från att skicka med värde finns begreppet att skicka med referens, där en referens till arrayen eller variabeln skickas in i funktionen. Följaktligen innebär en ändring av värdet inuti funktionen även en ändring av källan. I vissa programmeringsspråk skickas arrayer med referens som standard.
Tack för dina kommentarer!