Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Arrays an Funktionen Übergeben | Arrays und Slices
Einführung in Golang

bookArrays an Funktionen Übergeben

Eine nützliche Funktion ist die Möglichkeit, Arrays an Funktionen zu übergeben, sodass diese Arrays in anderen Gültigkeitsbereichen verwendet werden können, insbesondere wenn sie lokal deklariert wurden.

Die allgemeine Syntax für ein Array-Argument in einer Funktion ist wie folgt:

argName [expectedArraySize] dataType

Die Implementierung in einer Funktion sieht beispielsweise so aus:

index.go

index.go

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

Das folgende Beispiel zeigt, wie ein Array an eine Funktion übergeben und verwendet wird:

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) werden Arrays immer als Wert an Funktionen übergeben. Das bedeutet, dass beim Übergeben eines Arrays an eine Funktion eine lokale Kopie des ursprünglichen Arrays innerhalb der Funktion erstellt wird. Folglich wirken sich Änderungen am Array innerhalb der Funktion nicht auf das ursprüngliche Array aus, da auf eine Kopie des Originals zugegriffen wird.

Das folgende Programm veranschaulicht, dass Änderungen am Array innerhalb der Funktion das ursprüngliche Array nicht beeinflussen:

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

Hinweis

Im Gegensatz zur Übergabe per Wert gibt es das Konzept der Übergabe per Referenz, bei dem eine Referenz auf das Array oder die Variable an die Funktion übergeben wird. Dadurch führt eine Änderung des Werts innerhalb der Funktion auch zu einer Änderung der Quelle. In einigen Programmiersprachen werden Arrays standardmäßig per Referenz übergeben.

question mark

Welcher Code ist für den Parameter der Funktion myFunc geeignet:

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 8

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 1.96

bookArrays an Funktionen Übergeben

Swipe um das Menü anzuzeigen

Eine nützliche Funktion ist die Möglichkeit, Arrays an Funktionen zu übergeben, sodass diese Arrays in anderen Gültigkeitsbereichen verwendet werden können, insbesondere wenn sie lokal deklariert wurden.

Die allgemeine Syntax für ein Array-Argument in einer Funktion ist wie folgt:

argName [expectedArraySize] dataType

Die Implementierung in einer Funktion sieht beispielsweise so aus:

index.go

index.go

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

Das folgende Beispiel zeigt, wie ein Array an eine Funktion übergeben und verwendet wird:

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) werden Arrays immer als Wert an Funktionen übergeben. Das bedeutet, dass beim Übergeben eines Arrays an eine Funktion eine lokale Kopie des ursprünglichen Arrays innerhalb der Funktion erstellt wird. Folglich wirken sich Änderungen am Array innerhalb der Funktion nicht auf das ursprüngliche Array aus, da auf eine Kopie des Originals zugegriffen wird.

Das folgende Programm veranschaulicht, dass Änderungen am Array innerhalb der Funktion das ursprüngliche Array nicht beeinflussen:

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

Hinweis

Im Gegensatz zur Übergabe per Wert gibt es das Konzept der Übergabe per Referenz, bei dem eine Referenz auf das Array oder die Variable an die Funktion übergeben wird. Dadurch führt eine Änderung des Werts innerhalb der Funktion auch zu einer Änderung der Quelle. In einigen Programmiersprachen werden Arrays standardmäßig per Referenz übergeben.

question mark

Welcher Code ist für den Parameter der Funktion myFunc geeignet:

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 8
some-alt