对于关联数组我们可以写
if( elem in array) { .. }
我们为一个简单的数组写了什么? 我想写验证,例如。
enforce(input in [10,20,40]);
答案 0 :(得分:19)
in
遗憾地对数组不起作用。您必须使用canFind
http://dlang.org/phobos/std_algorithm.html中定义的search
或std.algorithm
。由于您只想知道它是否存在,而不是它的位置,canFind
是正确的工具。
import std.algorithm: canFind;
if (my_array.canFind(42)) { stuff }
答案 1 :(得分:4)
除了canFind之外,还有countUntil,它将为您提供第一次出现的索引。
请注意D"" in"关键字搜索关联数组的键而不是其值:
string[string] array = [
"foo" : "bar"
];
writeln(("foo" in array) != null); // true
writeln(("bar" in array) != null); // false