Es gibt zwei Möglichkeiten, Funktionen in Go aufzurufen: Übergabe als Wert und Übergabe als Referenz. Bei der Übergabe als Wert wird eine Kopie der Variablen an die Funktion übergeben, ohne den Wert der Originalvariablen zu beeinflussen; bei der Übergabe als Referenz wird die Adresse der Variablen an die Funktion übergeben, und jede Änderung wirkt sich auf den Wert der Originalvariablen aus. Im tatsächlichen Kampf verwendet die Add-Funktion die Wertübergabe und die Multiply-Funktion die Referenzübergabe, um den Wert der Variablen auf unterschiedliche Weise zu ändern.
In der Go-Sprache kann der Funktionsaufruf auf zwei Arten implementiert werden: Übergabe als Wert und Übergabe als Referenz.
Wertübergabe übergibt eine Kopie einer Variablen an eine Funktion, was bedeutet, dass Änderungen innerhalb der Funktion keinen Einfluss auf den Wert der ursprünglichen Variablen haben.
package main import "fmt" func add(x int) int { x++ // 修改 x 的副本 return x } func main() { y := 5 newY := add(y) // 传递 y 的副本 fmt.Println(newY) // 输出 6 fmt.Println(y) // 输出 5 }
Pass-by-Reference übergibt die Adresse einer Variablen an eine Funktion, was bedeutet, dass alle Änderungen an der Variablen innerhalb der Funktion den Wert der ursprünglichen Variablen beeinflussen.
package main import "fmt" func add(x *int) { *x++ // 修改 x 指向的值 } func main() { y := 5 add(&y) // 传递 y 的地址 fmt.Println(y) // 输出 6 }
Im folgenden Code definieren wir zwei Funktionen: Add
和 Multiply
。Add
使用值传递,而 Multiply
Übergeben als Referenz.
package main import "fmt" func Add(x int) { x++ } func Multiply(x *int) { *x *= 2 } func main() { a := 5 Add(a) // 调用 Add,使用值传递 fmt.Println(a) // 输出 5(值不变) b := 10 Multiply(&b) // 调用 Multiply,使用引用传递 fmt.Println(b) // 输出 20(值已修改) }
Das obige ist der detaillierte Inhalt vonSo rufen Sie die Golang-Funktion auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!