关于值传递的时候放一个指针进去

来源:3-1 数组

aznmoe

2020-03-11

老师你好,我仅有 前端开发 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 语言这里 我们可以将这个参数当作 一个 已经 取值(我不知道这个词对不对)完成的变量去使用了?

写回答

2回答

codegg

2020-11-09

你好,go语言默认使用值传递,不是只有值传递哦;go语言中的指针可以用来做引用传递。

0
0

铁哥们3930013

2020-03-11

1:对的

2:听不懂,什么求值取值的?

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程