How to gets multi results using tuple in D?

WebFreak001 d.forum at webfreak.org
Thu Dec 23 08:56:36 UTC 2021


On Thursday, 23 December 2021 at 08:33:17 UTC, zoujiaqing wrote:
>
> C++ Code:
> ```cpp
> std::tuple<bool, int, int, std::string_view> DoIt()
> {
>     return {false, 0, 0, "Hello"};
> }
>
> auto [r1, r2, r3, r4] = DoIt();
>
> if (r1 == false)
>
> ```
>
>
> D Code:
>
> ```D
> Tuple!(bool, int, int, string) DoIt()
> {
>     return [false, 1, 1, "Hello"];
> }
>
> auto result = DoIt();
>
> auto r1= result[0];
> auto r2= result[1];
> auto r3= result[2];
> auto r3= result[3];
>
> if (r1 == false)
> ```
>
> D requires more lines of code.

I think this is the best thing you can do:

```d
bool r1;
int r2, r3;
string r4;
AliasSeq!(r1, r2, r3, r4) = DoIt();
```

https://forum.dlang.org/thread/kmugmwmduxeoyfffoiif@forum.dlang.org


More information about the Digitalmars-d-learn mailing list