Arrays in Funktionen Übergeben
Ein wertvolles Merkmal ist die Fähigkeit, Arrays in Funktionen zu übergeben, sodass wir diese Arrays in anderen Gültigkeitsbereichen verwenden können, insbesondere wenn sie lokal deklariert sind.
Die allgemeine Syntax für ein Array-Argument in einer Funktion ist wie folgt:
argName [expectedArraySize] dataType
Die Implementierung in einer Funktion würde ungefähr so aussehen:
index.go
123func myFunc(arr [5] int) { // code here }
Das folgende Beispiel zeigt, wie ein Array in eine Funktion übergeben und verwendet wird:
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) werden Arrays immer als Wert in 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, die am Array innerhalb der Funktion vorgenommen werden, nicht auf das ursprüngliche Array aus, da die Daten, auf die innerhalb der Funktion zugegriffen wird, eine Kopie des ursprünglichen Arrays sind.
Das folgende Programm veranschaulicht, dass Änderungen am Array innerhalb der Funktion das ursprüngliche Array nicht beeinflussen:
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) }
Hinweis
Im Gegensatz zum Übergeben nach Wert gibt es das Konzept des Übergebens nach Referenz, bei dem eine Referenz auf das Array oder die Variable in die Funktion übergeben wird. Folglich wird durch das Ändern des Wertes innerhalb der Funktion auch die Quelle geändert. In einigen Programmiersprachen werden Arrays standardmäßig als Referenz übergeben.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you show an example of passing an array to a function in Go?
What is the difference between passing by value and passing by reference in Go?
How can I modify the original array inside a function in Go?
Awesome!
Completion rate improved to 1.96
Arrays in Funktionen Übergeben
Swipe um das Menü anzuzeigen
Ein wertvolles Merkmal ist die Fähigkeit, Arrays in Funktionen zu übergeben, sodass wir diese Arrays in anderen Gültigkeitsbereichen verwenden können, insbesondere wenn sie lokal deklariert sind.
Die allgemeine Syntax für ein Array-Argument in einer Funktion ist wie folgt:
argName [expectedArraySize] dataType
Die Implementierung in einer Funktion würde ungefähr so aussehen:
index.go
123func myFunc(arr [5] int) { // code here }
Das folgende Beispiel zeigt, wie ein Array in eine Funktion übergeben und verwendet wird:
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) werden Arrays immer als Wert in 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, die am Array innerhalb der Funktion vorgenommen werden, nicht auf das ursprüngliche Array aus, da die Daten, auf die innerhalb der Funktion zugegriffen wird, eine Kopie des ursprünglichen Arrays sind.
Das folgende Programm veranschaulicht, dass Änderungen am Array innerhalb der Funktion das ursprüngliche Array nicht beeinflussen:
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) }
Hinweis
Im Gegensatz zum Übergeben nach Wert gibt es das Konzept des Übergebens nach Referenz, bei dem eine Referenz auf das Array oder die Variable in die Funktion übergeben wird. Folglich wird durch das Ändern des Wertes innerhalb der Funktion auch die Quelle geändert. In einigen Programmiersprachen werden Arrays standardmäßig als Referenz übergeben.
Danke für Ihr Feedback!