How to gets multi results using tuple in D?

zoujiaqing zoujiaqing at gmail.com
Sun Dec 26 14:52:14 UTC 2021


On Thursday, 23 December 2021 at 08:56:36 UTC, WebFreak001 wrote:
> 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

Thanks! It's not concise!


More information about the Digitalmars-d-learn mailing list