Go语言

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言。

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语言值传递介绍的详细内容,更多请关注亿速云其它相关文章!