Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Arrays Doorgeven aan Functies | Arrays en Slices
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Introductie tot Golang

bookArrays 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

index.go

copy
123
func myFunc(arr [5] int) { // code here }

Het volgende voorbeeld toont het doorgeven van een array aan een functie en het gebruik ervan:

index.go

index.go

copy
123456789101112131415
package 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

index.go

copy
12345678910111213
package 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.

question mark

Wat is de juiste code voor de parameter van de functie myFunc:

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

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?

bookArrays 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

index.go

copy
123
func myFunc(arr [5] int) { // code here }

Het volgende voorbeeld toont het doorgeven van een array aan een functie en het gebruik ervan:

index.go

index.go

copy
123456789101112131415
package 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

index.go

copy
12345678910111213
package 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.

question mark

Wat is de juiste code voor de parameter van de functie myFunc:

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 8
some-alt