关于Golang的指针传递
首先,我们先来看一段代码
package main
import "fmt"
func main(){
var i []int
try(i)
fmt.Println(i) //[]
}
func try(i []int){
i = append(i, 1)
}
在这里,理论上来说本应该打印[1]
,因为切片为一个指针,在try
函数对其进行了append
,其本来指向的地址也应该改变。但是,这里却为空
Golang的值传递
首先,Go这门语言对参数的传递都是值传递的,也就是说,在传递切片i
的时候,函数只是复制了它本身的引用(其本身是个指针),如:
package main
import "fmt"
func main(){
var i []int=[]int{
0}
try(