在本教程(http://ddili.org/ders/d.en/foreach_opapply.html)中,If foreach support is provided by range member functions, then a loop counter can be achieved simply by enumerate from the std.range module:通过示例对其进行了评论.
import std.range;
// ...
foreach (i, element; NumberRange(42, 47).enumerate) {
writefln("%s: %s", i, element);
}
Run Code Online (Sandbox Code Playgroud)
我试着用这个例子检查一下enumerate,但是我收到了错误Error: no property 'enumerate' for type 'NumberRange'.可能有什么问题?
import std.stdio;
import std.range;
void main()
{
foreach (i, element; iota(42, 47).enumerate) {
writefln("%s: %s", i, element);
}
}
Run Code Online (Sandbox Code Playgroud)
enumerate在2.066被释放后添加.它将在2.067中提供.
顺便说一句,您可能会或可能不会意识到这一点,但您可以使用std.range.iota而不是NumberRange.