Example from d-idioms is incorrect
TheGag96 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Apr 30 14:30:34 PDT 2015
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.
More information about the Digitalmars-d-learn
mailing list