Comment by terminalbraid
Comment by terminalbraid 2 days ago
If you're fine with that then you should be upset by the subsequent example, because by your own definition "that's just not the way slices work".
Comment by terminalbraid 2 days ago
If you're fine with that then you should be upset by the subsequent example, because by your own definition "that's just not the way slices work".
Then you seem to be fine with inconsistent ownership and a behavioral dependence on the underlying data rather than the structure.
You really don't see why people would point a definition that changes underneath you out as a bad definition? They're not arguing the documentation is wrong.
The definition is perfectly consistent. append is in-place if there's enough capacity (and the programmer can check this directly with cap() if they want), and otherwise it allocates a new backing array.
Yes, it's consistent and complicated and non-intuitive.
"Consistent" is necessary but not sufficient for "good".
I am fine with the subsequent example, too. If you read up about slices, then that's how they are defined and how they work. I am not judging, I am just using the language as it is presented to me.
For anyone interested, this article explains the fundamentals very well, imo: https://go.dev/blog/slices-intro