Overførsel af Arrays til Funktioner
En værdifuld funktion er muligheden for at videregive arrays til funktioner, så vi kan anvende disse arrays i andre scopes, især når de er lokalt deklarerede.
Den generelle syntaks for et array-argument i en funktion er som følger:
argName [expectedArraySize] dataType
Implementering af dette i en funktion vil se nogenlunde sådan ud:
index.go
123func myFunc(arr [5] int) { // code here }
Følgende eksempel demonstrerer, hvordan et array videregives til en funktion og anvendes:
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) videregives arrays altid som værdier til funktioner. Det betyder, at når et array videregives til en funktion, oprettes der en lokal kopi af det oprindelige array inde i funktionen. Derfor vil eventuelle ændringer foretaget på arrayet inde i funktionen ikke påvirke det oprindelige array, da de data, der tilgås i funktionen, er en kopi af det oprindelige array.
Følgende program illustrerer, at ændringer af arrayet inden i funktionen ikke påvirker det oprindelige array:
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) }
Bemærk
I modsætning til at videregive ved værdi, findes der begrebet at videregive ved reference, hvor en reference til arrayet eller variablen videregives til funktionen. Derfor vil ændringer af værdien inde i funktionen også ændre kilden. I nogle programmeringssprog videregives arrays som standard ved reference.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Overførsel af Arrays til Funktioner
Stryg for at vise menuen
En værdifuld funktion er muligheden for at videregive arrays til funktioner, så vi kan anvende disse arrays i andre scopes, især når de er lokalt deklarerede.
Den generelle syntaks for et array-argument i en funktion er som følger:
argName [expectedArraySize] dataType
Implementering af dette i en funktion vil se nogenlunde sådan ud:
index.go
123func myFunc(arr [5] int) { // code here }
Følgende eksempel demonstrerer, hvordan et array videregives til en funktion og anvendes:
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) videregives arrays altid som værdier til funktioner. Det betyder, at når et array videregives til en funktion, oprettes der en lokal kopi af det oprindelige array inde i funktionen. Derfor vil eventuelle ændringer foretaget på arrayet inde i funktionen ikke påvirke det oprindelige array, da de data, der tilgås i funktionen, er en kopi af det oprindelige array.
Følgende program illustrerer, at ændringer af arrayet inden i funktionen ikke påvirker det oprindelige array:
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) }
Bemærk
I modsætning til at videregive ved værdi, findes der begrebet at videregive ved reference, hvor en reference til arrayet eller variablen videregives til funktionen. Derfor vil ændringer af værdien inde i funktionen også ændre kilden. I nogle programmeringssprog videregives arrays som standard ved reference.
Tak for dine kommentarer!