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函数中的参数传递的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:走不完的路,转转请注明出处:https://www.dingdanghao.com/article/418836.html