Arrays Doorgeven aan Functies
Een waardevolle eigenschap is de mogelijkheid om arrays door te geven aan functies, zodat deze arrays binnen andere scopes gebruikt kunnen worden, vooral wanneer ze lokaal zijn gedeclareerd.
De algemene syntaxis voor een array-argument in een functie is als volgt:
argName [expectedArraySize] dataType
De implementatie hiervan in een functie ziet er als volgt uit:
index.go
123func myFunc(arr [5] int) { // code here }
Het volgende voorbeeld toont het doorgeven van een array aan een functie en het gebruik ervan:
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)) }
In Go (Golang) worden arrays altijd als waarde doorgegeven aan functies. Dit betekent dat wanneer we een array aan een functie doorgeven, er binnen de functie een lokale kopie van de oorspronkelijke array wordt gemaakt. Als gevolg hiervan hebben wijzigingen die binnen de functie aan de array worden aangebracht geen invloed op de oorspronkelijke array, omdat de gegevens die binnen de functie worden benaderd een kopie zijn van de originele array.
Het volgende programma laat zien dat wijzigingen aan de array binnen de functie geen effect hebben op de oorspronkelijke 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) }
Opmerking
In tegenstelling tot het doorgeven op waarde, is er het concept van doorgeven op referentie, waarbij een referentie naar de array of variabele aan de functie wordt doorgegeven. Hierdoor wordt bij het wijzigen van de waarde binnen de functie ook de bron aangepast. In sommige programmeertalen worden arrays standaard door referentie doorgegeven.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 1.96
Arrays Doorgeven aan Functies
Veeg om het menu te tonen
Een waardevolle eigenschap is de mogelijkheid om arrays door te geven aan functies, zodat deze arrays binnen andere scopes gebruikt kunnen worden, vooral wanneer ze lokaal zijn gedeclareerd.
De algemene syntaxis voor een array-argument in een functie is als volgt:
argName [expectedArraySize] dataType
De implementatie hiervan in een functie ziet er als volgt uit:
index.go
123func myFunc(arr [5] int) { // code here }
Het volgende voorbeeld toont het doorgeven van een array aan een functie en het gebruik ervan:
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)) }
In Go (Golang) worden arrays altijd als waarde doorgegeven aan functies. Dit betekent dat wanneer we een array aan een functie doorgeven, er binnen de functie een lokale kopie van de oorspronkelijke array wordt gemaakt. Als gevolg hiervan hebben wijzigingen die binnen de functie aan de array worden aangebracht geen invloed op de oorspronkelijke array, omdat de gegevens die binnen de functie worden benaderd een kopie zijn van de originele array.
Het volgende programma laat zien dat wijzigingen aan de array binnen de functie geen effect hebben op de oorspronkelijke 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) }
Opmerking
In tegenstelling tot het doorgeven op waarde, is er het concept van doorgeven op referentie, waarbij een referentie naar de array of variabele aan de functie wordt doorgegeven. Hierdoor wordt bij het wijzigen van de waarde binnen de functie ook de bron aangepast. In sommige programmeertalen worden arrays standaard door referentie doorgegeven.
Bedankt voor je feedback!