go语言值传递介绍

互联网 20-6-17

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的值发生了改变

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

以上就是go语言值传递介绍的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: go语言
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Golang 可以把包名去掉吗?

相关资讯