Jonathan M Davis Wrote: [...] > So, if you alter the elements of that array, it alters the elements of > the array that was passed in. However, if you alter the arrays size, > causing it to have to re-allocate memory, then that array is going to > be pointing to a different block of memory, and it will no longer > affect the original array.
This behavior, IMO, is a real misfeature. The length property of an array shouldn't be directly mutable, and you shouldn't be able to append onto the end of a dynamic array, because it can cause some surprising behavior and adds a lot of cruft to the interface in the form of, well, most of std.array. The ability to use an an array as a replacement for an ArrayList or std::vector clashes badly with the ability to use arrays as lightweight slices. Since lightweight slices are such a win[1], and people coming from any of Java/C#/C++ will be used to using a library class if they need a flexible array to use as a list, I think separating the two concepts and moving the flexible array into a library would be a notable improvement to the language. Sure, it may surprise Pythonistas, but they'll have a lot to learn anyway, given how much lower level and more static D is as a language. [1] From a "marketing" perspective, they're also great way to show off how using a GCed language can actually improve performance and memory use. Cheers, Pillsy
