我是 D 的新手,我只是在尝试。我正在使用的一本书给了我一个通用二进制搜索方法的例子。然后我想制作自己的主要方法来打印结果只是为了好玩。我来自 Java,其中字符串连接只需使用 + 运算符完成。
但是当我在 D 中尝试时,它说这两种类型(在这种情况下为 String 和 bool)是不兼容的。正如我在 C++ 中看到的那样,我尝试使用 << 操作,但后来它告诉我它不是一个整体。那我该如何连接呢?
import std.stdio, std.array;
void main() {
bool b = binarySearch([1, 3, 6, 7, 9, 15], 6);
writeln("6 is in array: " + b);
b = binarySearch([1, 3, 6, 7, 9, 15], 5);
writeln("5 i sin the array: " + b);
}
bool binarySearch(T)(T[] input, T value) {
while(!input.empty) {
auto i = input.length / 2;
auto mid = input[i];
if(mid > value) input = input[0 .. i];
else if (mid < value) input = input[i + 1 .. $];
else return true;
}
return false;
}