Go 函數呼叫有兩種方式:值傳遞和參考傳遞。值傳遞將變數的副本傳遞給函數,不影響原始變數的值;引用傳遞將變數的位址傳遞給函數,任何修改都會影響原始變數的值。在實戰中,Add 函數使用值傳遞,Multiply 函數使用參考傳遞,以不同的方式修改變數的值。
在 Go 語言中,函數呼叫可以透過值傳遞和引用傳遞兩種方式實現。
值傳遞將一個變數的副本傳遞給函數,這表示函數內的任何修改都不會影響原始變數的值。
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 }
引用傳遞將一個變數的位址傳遞給函數,這表示函數內對該變數的任何修改都會影響原始變數的值。
package main import "fmt" func add(x *int) { *x++ // 修改 x 指向的值 } func main() { y := 5 add(&y) // 传递 y 的地址 fmt.Println(y) // 输出 6 }
在以下程式碼中,我們定義了兩個函數:Add
和 Multiply
。 Add
使用值傳遞,而 Multiply
使用參考傳遞。
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(值已修改) }
以上是golang函數的呼叫方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!