On Thursday, 30 April 2015 at 21:30:36 UTC, TheGag96 wrote:
I was looking at the d-idioms website today and saw this code
example:
http://p0nce.github.io/d-idioms/#Adding-or-removing-an-element-from-arrays
And I was kind of irked. I just recently working with removing
an element from an array in a small project I worked on two
weeks ago, and I had to learn the hard way that to properly
remove an element from an array in the way this example
describes, you have to do array.length--; as well.
This code:
import std.stdio, std.algorithm;
void main() {
int[] arr; //ensuring it's dynamic
arr ~= 1;
arr ~= 5;
arr ~= 10;
arr.remove(1);
writeln(arr);
writeln(arr == [1, 10]);
arr.length--;
writeln(arr);
writeln(arr == [1, 10]);
}
produces this output:
[1, 10, 10]
false
[1, 10]
true
Compiled and ran on Windows, dmd v2.067.0. Unless I'm totally
missing something here, that website is giving some pretty
wrong information... Was the behavior of the remove() function
changed recently? Thanks guys.
http://dpaste.dzfl.pl/007a9319371d
Application output:
[1, 10]
true
[1]
false