Returns the tail of range augmented with length information
// tail -c n assert([1, 2, 3].tail(1) == [3]); assert([1, 2, 3].tail(2) == [2, 3]); assert([1, 2, 3].tail(3) == [1, 2, 3]); assert([1, 2, 3].tail(4) == [1, 2, 3]); assert([1, 2, 3].tail(0).length == 0); // tail --lines=n import std.algorithm.comparison : equal; import std.algorithm.iteration : joiner; import std.exception : assumeWontThrow; import std.string : lineSplitter; assert("one\ntwo\nthree" .lineSplitter .tail(2) .joiner("\n") .equal("two\nthree") .assumeWontThrow);
Return a range advanced to within _n elements of the end of range.
Intended as the range equivalent of the Unix _tail utility. When the length of range is less than or equal to _n, range is returned as-is.
Completes in O(1) steps for ranges that support slicing and have length. Completes in O(range.length) time for all other ranges.