老师你好,我仅有 前端开发 js 、ts 的开发经验,没有涉及过指针这种东东,有个事情不是很确定。
即,老师你说过 go 语言中 仅有 值传递而没有引用传递,那么在下面这个代码中
package main
import "fmt"
func setValue(arr *[5]int) {
arr[1] = 11
(*arr)[0] = 100
}
func main() {
arr := [...]int{0, 1, 2, 3, 4}
setValue(&arr)
fmt.Println(arr)
}
问题1:
我们传递给 setValue 的参数是 arr
的地址,那么 由于 go 语言仅有值传递,是不是说 setValue 接受的参数是 arr
地址的 一份拷贝?
问题2:
对于一个指针的使用,我们并不需要将其求值,参数传递进来的是一个指针 但 在 go 语言这里 我们可以将这个参数当作 一个 已经 取值(我不知道这个词对不对)完成的变量去使用了?