On Monday, 8 April 2019 at 18:04:28 UTC, kdevel wrote:
On Sunday, 7 April 2019 at 17:16:12 UTC, Seb wrote:
---
["a": 1].byPair.array.sort!((a, b) => a.value <
a.value).release.each!writeln;
---
What's the purpose of .release? The documentation in
https://dlang.org/phobos/std_range.html#.SortedRange.release is
rather monosyllabic.
As others have already explained, you'll get the original range
back (instead of the SortedRange).
Sometimes, this is useful.
The obvious example is assigning back to the original range:
---
import std.experimental.all;
void main()
{
auto arr = ["a": 1].byPair.array;
arr = arr.sort!((a, b) => a.value < a.value);
}
---
https://run.dlang.io/is/8sFxVb
OTOH this works:
---
import std.experimental.all;
void main()
{
auto arr = ["a": 1].byPair.array;
arr = arr.sort!((a, b) => a.value < a.value).release;
}
---
https://run.dlang.io/is/TgXUZj
In the example where I used it, you won't need it.
Sorry for the confusion, but as it's often every now and then
pretty useful, I thought it is a nice idea to give it more
spotlight as it's one of the lesser known parts of Phobos.