您的位置 首页 技术

go语言值传递介绍

Go语言的参数只能是值传递 值传递是一个拷贝的过程 Go:值传递 func bbb(list [4]int){ for i,_ := range list{ list[i] = 0…

Go语言的参数只能是值传递

值传递是一个拷贝的过程

Go:值传递

func bbb(list [4]int){   for i,_ := range list{      list[i] = 0   }}func main(){   list := [4]int{1,2,3,4}   bbb(list)   fmt.Println(list )   //[1 2 3 4]}

Javascript: 引用传递

let list = [1,2,3,4]function  bbb(list){    list.forEach((item,index)=>{        list[index] = 0    })}bbb(list)console.log(list)   //[0,0,0,0]

但是Go语言可以通过指针来实现引用传递的作用

func bbb(p2 *[4]int){    //接受一个[4]int的指针   for i,_ := range p2{      p2[i] = 0   }}func main(){   list := [4]int{1,2,3,4}   p := &list   bbb(p)     //传递指针   fmt.Println(list )   //[0 0 0 0]}

既然说go语言的参数传递只能是值传递,所以这里实际上是把指针地址拷贝了一份,而两个地址都指向了main函数的变量list的地址,所以才使list的值发生了改变

1.jpg

更多相关知识请关注go语言教程栏目

以上就是go语言值传递介绍的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/81403.html

为您推荐

返回顶部