首頁 >後端開發 >Golang >golang函數中的參數傳遞

golang函數中的參數傳遞

WBOY
WBOY原創
2024-04-28 18:39:02645瀏覽

GoLang 函數的參數傳遞採用傳值傳遞機制,對值類型參數的修改不影響實際參數,而對參考類型參數的修改會影響實際參數;指標參數允許間接存取並修改實際參數。

golang函數中的參數傳遞

GoLang 函數中的參數傳遞

簡介

在GoLang 中,參數傳遞遵循傳值傳遞機制。這意味著在函數內部對參數進行的任何更改不會影響函數外部的實際參數。

參數類型

GoLang 函數的參數可以是值型別或參考型別。

  • 值型別:整數型、浮點型、布林型、字串等基本型別。
  • 引用類型:陣列、切片、結構體、指標等引用實際資料的型別。

值類型

對於值類型參數,函數內部對參數的任何修改都不會影響實際參數。這是因為在函數呼叫期間,會建立參數的副本。

func swap(a, b int) {
    a, b = b, a // 在函数内交换 a 和 b 的副本
}

func main() {
    x := 5
    y := 7
    swap(x, y)
    fmt.Println(x, y) // 输出 5 7
}

引用型別

對於參考型別參數,函數內部對參數的修改會影響實際參數。這是因為函數直接操作實際資料。

func swap(a, b []int) {
    a[0], b[0] = b[0], a[0] // 交换切片的第一个元素
}

func main() {
    x := []int{5}
    y := []int{7}
    swap(x, y)
    fmt.Println(x, y) // 输出 [7] [5]
}

指標

#指標類型提供了一個間接存取值的機制。透過指標傳遞引用類型時,可以修改實際參數。

func swap(a, b *int) {
    *a, *b = *b, *a // 交换指针指向的值
}

func main() {
    x := 5
    y := 7
    swap(&x, &y)
    fmt.Println(x, y) // 输出 7 5
}

實戰案例

以下是一個使用函數參數傳遞的實際案例:

type Book struct {

以上是golang函數中的參數傳遞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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