On Saturday, 31 August 2024 at 12:47:25 UTC, ryuukk_ wrote:
```D
void main()
{
    int[string] test;

    test["hello"] = 42;

    if (auto it = "hello" in test)
    {

    }

}
```
Is there a way to get the value instead of a pointer? while keeping the conciseness (one line)

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);
    }
}
```

[1]: https://github.com/dlang/phobos/pull/9039
  • Associative Arra... ryuukk_ via Digitalmars-d-learn
    • Re: Associa... Steven Schveighoffer via Digitalmars-d-learn
      • Re: Ass... ryuukk_ via Digitalmars-d-learn
        • Re:... kdevel via Digitalmars-d-learn
    • Re: Associa... Paul Backus via Digitalmars-d-learn
      • Re: Ass... ryuukk_ via Digitalmars-d-learn
        • Re:... ryuukk_ via Digitalmars-d-learn
          • ... Lance Bachmeier via Digitalmars-d-learn
            • ... ryuukk_ via Digitalmars-d-learn
            • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
          • ... Nick Treleaven via Digitalmars-d-learn
            • ... Nick Treleaven via Digitalmars-d-learn
            • ... Nick Treleaven via Digitalmars-d-learn
      • Re: Ass... kdevel via Digitalmars-d-learn
        • Re:... Paul Backus via Digitalmars-d-learn

Reply via email to