Ali Çehreli:
auto app = appender!(ubyte[])();
app.put(cast(ubyte)40);
app.put(cast(ubyte)5);
app.put(cast(ubyte)234);
// ... add 5 times 0
A fancy way: :)
import std.range;
// ...
app.put(repeat(cast(ubyte)0).take(5));
Now we have a better syntax for implicit casts:
void main() {
import std.array, std.range;
Appender!(ubyte[]) app;
app.put(ubyte(0).repeat.take(5));
}
Single line, but not lazy:
void main() {
import std.array, std.range;
Appender!(ubyte[]) app = ubyte(0).repeat.take(5).array;
}
But I have a question too. What's the best way to append several
lazy items to a dynamic array? This doesn't work:
void main() {
import std.array, std.range;
int[] arr;
arr.put(only(1, 2, 3));
}
Bye,
bearophile