函数值传递的问题

来源:3-2 切片的概念

liyongwei

2018-09-14

你好,老师,go语言里函数参数都是值传递,没有引用传递,下面的代码是把slice当作参数传给函数maopao进行排序。然而打印出的结果是:[1 3 5 6 7 8 9]
疑惑:值传递是把变量进行copy一份,在函数里的排序,为什么会影响到外面slice的顺序

图片描述

写回答

1回答

ccmouse

2018-09-18

这是因为切片的肚子里藏了一个指针。值传递的拷贝,只是进行了所谓“浅”拷贝,两个切片指向同一块数据。之前说到值传递的时候,有讲到传递一个缓存,就是这样的情况。另外,这章我们也会剖析切片内部的具体实现和结构。

0
0

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

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

5995 学习 · 1909 问题

查看课程