找回密码
 骑士注册

QQ登录

微博登录

❏ 站外平台:

Linux 中国◆开源社区 首页 查看评论
[1]
来自广东广州的 Chrome 102.0|Windows 10 用户 发表于 2022-06-27 10:45 的评论:
原文中“你对函数内部的切片所做的任何修改,都不会在函数退出后丢失”有误。在函数内进行切片的append操作导致函数内的切片len>cap时,会发生底层数组重新分配,函数内切片会指向新内存块的地址,也就与一开始函数外的切片指向了不同的内存块。这时候对函数内的切片继续操作将不会影响到外部的切片变量。而且go是没有引用传递一说,本质上还是值传递。
来自39.173.62.117的 Safari 15.5|Mac 10.15 用户 2022-06-27 11:24 9 回复
我是个 Go 初学者,感谢指教,学到了!
关于“引用传递”还是“值传递”这个事,当然是“值传递”,没有任何异议。原作者的“引用”的意思应该就是指向这个切片的变量。可能是我翻译得不好~
来自广东广州的 Chrome 102.0|Windows 10 用户 2022-06-27 10:45 8 回复
原文中“你对函数内部的切片所做的任何修改,都不会在函数退出后丢失”有误。在函数内进行切片的append操作导致函数内的切片len>cap时,会发生底层数组重新分配,函数内切片会指向新内存块的地址,也就与一开始函数外的切片指向了不同的内存块。这时候对函数内的切片继续操作将不会影响到外部的切片变量。而且go是没有引用传递一说,本质上还是值传递。

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。