On Saturday, 31 August 2024 at 14:25:29 UTC, Paul Backus wrote:
[...]
Once the next release of Phobos comes out, with [PR 9039][1]
merged, you'll be able to do it like this:
```d
import std.typecons;
Nullable!V maybeGet(K, V)(V[K] aa, K key)
{
if (auto ptr = key in aa)
return nullable(*ptr);
else
return Nullable!V.init;
}
void main()
{
import std.stdio;
int[string] test = ["hello": 42];
if (auto it = test.maybeGet("hello"))
{
writeln("hello => ", it.get);
}
}
```
Is that functionally different from
```
void main()
{
import std.stdio;
int[string] test = ["hello": 42];
if (auto p = "hello" in test)
{
writeln("hello => ", *p);
}
}
```
?