切片作为函数参数的理解
1 | func f() { |
ans 数组会变成 “fff”,说明切片 ans 进入 renew
方法是ans 切片的引用,可以变更 ans 切片的内容
但如果在 renew
里 append 操作,再返回打印 ans 会发现,ans 里面还是就 1 个,这是因为,ans 的 len 属性没有变化!虽然 ans 地址后面是写入了内容的,但是回到 f() 这一层,len 的值又成了 1,是读不到下一个单位长度的值的。
由此我们得到结论:
在 go 的函数里如果我们传入一个切片,只是改变里面的值,不改变切片的大小,那么可以实现。
如果还要改变切片的大小。那么请传入地址。
1 | func f() { |