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中文網其他相關文章!