D 如何在foreach循环中查看和建议范围
在迭代一个范围的foreach循环中,我想(1)前进,(2)在不前进的情况下查看范围中的下一个元素D 如何在foreach循环中查看和建议范围,d,D,在迭代一个范围的foreach循环中,我想(1)前进,(2)在不前进的情况下查看范围中的下一个元素 import std.range: splitter; import std.conv: parse; foreach(numstr; line.splitter(',')) { const int code = parse!int(numstr); switch (code) { case 1: auto next1 = //
import std.range: splitter;
import std.conv: parse;
foreach(numstr; line.splitter(',')) {
const int code = parse!int(numstr);
switch (code) {
case 1:
auto next1 = // currentRange.next()
// calling next() advances the range
auto next2 = // currentRange.next()
auto next3 = // currentRange.next()
// ...
case 2:
auto next1 = // currentRange.peek()
// calling peek() will not forward the range
currentRange.advanceBy(4);
// ...
// ...
}
}
(1) 前进
您可以使用popFront
手动推进范围,但我不建议将其与foreach
循环相结合。可能将foreach
替换为,而(!range.empty)
(2) 窥视范围内的下一个元素而不推进它
为此,请预付一份副本:
range.save.dropOne.front
range.save.drop(4).front
split