Input/Output multiple values from function
Jabari Zakiya
jzakiya at gmail.com
Wed Aug 28 13:11:46 UTC 2019
On Wednesday, 28 August 2019 at 10:10:08 UTC, Simen Kjærås wrote:
> On Wednesday, 28 August 2019 at 05:17:28 UTC, Jabari Zakiya
> wrote:
>> 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?
>
> import std.meta : AliasSeq;
> import std.typecons : tuple;
>
> auto fun() {
> return tuple(1, "test");
> }
>
> unittest {
> int a;
> string b;
> AliasSeq!(a, b) = fun;
> assert(a == 1);
> assert(b == "test");
> }
>
> --
> Simen
When I do this:
uint a; uint b; uint[] c; uint[] d;
AliasSeq!(a, b, c, d) = genPGparameters(pg);
modpg = a;
res_0 = b;
restwins = c;
resinvrs = d;
the compiler (ldc2 1.17) says:
D Projects ~/D/bin/ldc2 --release -O3 twinprimes_ssoznew1.d
twinprimes_ssoznew1.d(170): Error: cannot implicitly convert
expression c of type uint[] to shared(uint[])
twinprimes_ssoznew1.d(171): Error: cannot implicitly convert
expression d of type uint[] to shared(uint[])
where modpg, res_0; restwins, resinvrs are shared (global)
variables.
More information about the Digitalmars-d-learn
mailing list