On Monday, 2 October 2023 at 02:56:33 UTC, Steven Schveighoffer wrote:

FWIW, there is a cache that makes this decently fast, so it doesn't have to go all the way into the GC to get all the information for every append.

But it *most definitely* not going to be as fast as reading a local "capacity" variable.

-Steve

Sure, I saw that, it obviously works pretty good.

I think it's worth mentioning that D slices are similar in concept to Go slices.

In Python, lists are reference types too but slicing creates a copy (so, 'b = a' shares, while 'b = a[:]' copies.) JavaScript arrays are similar to Python in this sense. C++ and Rust use distinct types for the resizable array and its view, and the view must not outlive the array.

D and Go slices have advantages but can be confusing. I don't have a solution, but if anyone is interested, the relevant discussions about slice confusion in the Go community apply to D slices as well.

Reply via email to