Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于13.1节的疑问 #95

Open
mfzzz opened this issue Jul 24, 2021 · 5 comments
Open

关于13.1节的疑问 #95

mfzzz opened this issue Jul 24, 2021 · 5 comments

Comments

@mfzzz
Copy link

mfzzz commented Jul 24, 2021

感觉13.1节的内容跟13.3节有冲突,因为13.3节解释到append时值传递所以不可能操作原来的slice。那13.1节的扩容分析感觉不是问题所在,即使不扩容,只要不接收返回返回值,原来的slice也不会变化。

@mfzzz mfzzz closed this as completed Jul 31, 2021
@RainbowMango
Copy link
Owner

抱歉还没来得及看,为什么又关掉了?

@RainbowMango
Copy link
Owner

那13.1节的扩容分析感觉不是问题所在,即使不扩容,只要不接收返回返回值,原来的slice也不会变化。

如果append时没有发生扩容,原来的slice也是变化的(元素增多了)。

@mfzzz
Copy link
Author

mfzzz commented Aug 5, 2021

嗯,如果append没有使slice扩容,slice指向的底层数组是同一个,且里面元素发生变化。但是append是值传递,对于原slice来说,如果不接收返回值,它的len不会改变,所以底层数组的变化不会体现到它上面。所以我感觉问题不在于是否发生扩容。(这种情况 slice没有扩容,错误信息也是不会返回)。(不知道我理解的是否有偏差)

@mfzzz mfzzz reopened this Aug 5, 2021
@RainbowMango
Copy link
Owner

是的,我也是这么理解的。

所以,你觉得13.1节需要改,还是13.3节需要改。建议如何改?

@mfzzz
Copy link
Author

mfzzz commented Aug 9, 2021

原文“append()函数每次追加元素都有可能触发切片扩容,即有可能返回一个新的切片”,这里的“即有可能”是不是可以去掉呀,我理解的是每次都会返回新切片(即使共享底层数组的情况也算一个新切片吧?)。我觉得13.1的例子可以合并到13.3中😂。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants