脚本宝典收集整理的这篇文章主要介绍了go语言值传递介绍,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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语言值传递介绍的详细内容,更多请关注脚本宝典其它相关文章!
以上是脚本宝典为你收集整理的go语言值传递介绍全部内容,希望文章能够帮你解决go语言值传递介绍所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。