extend "in" to all array types
John Colvin
john.loughran.colvin at gmail.com
Wed Jan 15 07:48:12 PST 2014
On Wednesday, 15 January 2014 at 15:30:35 UTC, pplantinga wrote:
> In python, I really like the ability to check if an element is
> in an array:
>
> if x in array:
> # do something
>
> D has this, but only for associative arrays. Is there any
> chance we could extend this to every kind of array?
import std.algorithm: canFind;
if(array.canFind(x))
//do something
alternatively, something like this:
struct InWrapper(T)
{
T unwrapped;
alias unwrapped this;
auto opBinaryRight(string op, T)(T el)
if(op == "in")
{
import std.algorithm : canFind;
return unwrapped.canFind(el);
}
}
unittest
{
InWrapper!(int[]) arr;
arr = [1,2,3,4];
assert(4 in arr);
assert(!(5 in arr));
}
More information about the Digitalmars-d
mailing list