请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

2回答

codegg 2020-11-09 10:50:15

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

0 回复 有任何疑惑可以回复我~
铁哥们3930013 2020-03-11 21:55:06

1:对的

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信