首頁  >  文章  >  後端開發  >  golang函數的呼叫方式

golang函數的呼叫方式

PHPz
PHPz原創
2024-04-21 09:21:01532瀏覽

Go 函數呼叫有兩種方式:值傳遞和參考傳遞。值傳遞將變數的副本傳遞給函數,不影響原始變數的值;引用傳遞將變數的位址傳遞給函數,任何修改都會影響原始變數的值。在實戰中,Add 函數使用值傳遞,Multiply 函數使用參考傳遞,以不同的方式修改變數的值。

golang函數的呼叫方式

Go 函數的呼叫方式

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

實戰案例

在以下程式碼中,我們定義了兩個函數:AddMultiplyAdd 使用值傳遞,而 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn