Input/Output multiple values from function
Jabari Zakiya
jzakiya at gmail.com
Wed Aug 28 05:17:28 UTC 2019
On Wednesday, 28 August 2019 at 04:39:23 UTC, Mike Parker wrote:
> On Wednesday, 28 August 2019 at 04:19:49 UTC, Jabari Zakiya
> wrote:
>> I have a function (say func1) that takes 1 input value (an
>> integer number) and outputs 4 values (2 integers and 2 arrays
>> of integers).
>>
>> Then inside another function (say func2) I provide the 1 input
>> to func1 and then want to assign its 4 output values to their
>> appropriate final variables that will use them.
>>
>> Conceptually I want to do below:
>>
>> func2 { .......; (a, b, c, d) = func1(i) }
>>
>> I tried using a struct but compiler keeps complaining.
>>
>> Thanks for help in advance.
>
> A struct should work just fine:
>
> https://run.dlang.io/is/aMBGD0
>
> import std.stdio;
> struct Results {
> int a, b;
> int[] aa, ab;
> }
>
> Results func1() {
> return Results(1, 2, [0, 1, 2, 3], [10, 11, 12]);
> }
>
> void main()
> {
> writeln(func1);
> }
>
> What is the compiler complaining about?
Inside func2 I create an input value for func1 and then assign
func1's 4 outputs to named variable. That's where the problems
arise. func1 does some math based on the input and generates 4
outputs.
I can't do (a, b, c,d) = func1(i) directly.
What do I do to assign the output of func1 to the individual
variables?
More information about the Digitalmars-d-learn
mailing list