Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overførsel af Arrays til Funktioner | Arrays og Slices
Introduktion til Golang

bookOverfø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

index.go

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

Følgende eksempel demonstrerer, hvordan et array videregives til en funktion og anvendes:

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)) }

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

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) }

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.

question mark

Hvad er den korrekte kode for parameteren i funktionen myFunc:

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 8

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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?

Awesome!

Completion rate improved to 1.96

bookOverfø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

index.go

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

Følgende eksempel demonstrerer, hvordan et array videregives til en funktion og anvendes:

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)) }

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

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) }

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.

question mark

Hvad er den korrekte kode for parameteren i funktionen myFunc:

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 8
some-alt