mam następujący program D, który ma do grupy linii wejściowych do grup wielkości 3.Dlang byLineCopy omijając linie
import std.stdio;
import std.range;
import std.array;
void main()
{
while (!stdin.eof) {
auto currentBlock = array(take(stdin.byLineCopy, 3));
foreach (i, e; currentBlock) {
writefln("%d) %s", i, e);
}
}
}
i podane następujące dane wejściowe
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto
produkuje wyjście.
0) Mercury
1) Venus
2) Earth
0) Jupiter
1) Saturn
2) Uranus
0) Pluto
pomijanie linii na granicy każdej iteracji (Mars i Neptun nie są na wyjściu). Co ja robię źle?
hm wydaje się być błędem w funkcji take do mnie. Jeśli chcesz osiągnąć inną funkcję w międzyczasie, aby osiągnąć to samo, użyj '.chunks (3)', która zwraca zakres 3 zakresów długości – WebFreak001
@ WebFreak001 'chunks' nie działa dla mnie. Wygląda na to, że 'byLineCopy' zwraca' InputRange', a 'chunks' spodziewa się' ForwardRange'. –