Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Att Skicka Arrayer till Funktioner | Arrayer och Slices
Introduktion till Golang

bookAtt 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

index.go

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

Följande exempel visar hur man skickar en array till en funktion och använder den:

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

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

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.

question mark

Vilken kod är lämplig som parameter för funktionen myFunc:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 8

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookAtt 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

index.go

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

Följande exempel visar hur man skickar en array till en funktion och använder den:

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

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

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.

question mark

Vilken kod är lämplig som parameter för funktionen myFunc:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 8
some-alt