Function std.range.dropBack
drop is a convenience function which calls
popFrontN(range, n) and returns range.
Unlike popFrontN, the range argument is passed by copy, not by ref.
R dropBack(R)(
R range,
size_t n
)
if (isBidirectionalRange!R);
drop makes it easier to pop elements from a range rvalue
and then pass it to another function within a single expression,
whereas popFrontN would require multiple statements.
dropBack provides the same functionality but instead calls
popBackN(range, n)
Note
drop and dropBack will only pop up to
n elements but will stop if the range is empty first.
In other languages this is sometimes called skip.
Parameters
| Name | Description |
|---|---|
| range | the input range to drop from |
| n | the number of elements to drop |
Returns
See Also
Example
import std .algorithm .comparison : equal;
auto a = [0, 2, 1, 5, 0, 3];
writeln(a .drop(3)); // [5, 0, 3]
assert(a .length == 6); // original unchanged
writeln("hello world" .drop(6)); // "world"
assert("hello world" .drop(50) .empty);
assert("hello world" .take(6) .drop(3) .equal("lo "));
Example
import std .algorithm .comparison : equal;
writeln([0, 2, 1, 5, 0, 3] .dropBack(3)); // [0, 2, 1]
writeln("hello world" .dropBack(6)); // "hello"
assert("hello world" .dropBack(50) .empty);
assert("hello world" .drop(4) .dropBack(4) .equal("o w"));
Authors
Andrei Alexandrescu, David Simcha, Jonathan M Davis, and Jack Stouffer. Credit for some of the ideas in building this module goes to Leonardo Maffi.