www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Tuple fields/types

reply Jordan Wilson <wilsonjord gmail.com> writes:
Hello,

For tuples, does the fieldNames property have a 1-1 
correspondence with the Types property?

It appears that way in my testing:

alias MyData = Tuple!(string,"a",int,"b");
foreach (i, type; MyData.Types){
     writeln (MyData.fieldNames[i]," ",type.stringof);
     // a string
     // b int
}

But I can't figure out for sure from the documentation:

alias fieldNames = staticMap!(extractName, fieldSpecs);
alias Types = staticMap!(extractType, fieldSpecs);

Thanks,

Jordan
Jun 30 2016
next sibling parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Thursday, 30 June 2016 at 21:53:42 UTC, Jordan Wilson wrote:
 Hello,

 For tuples, does the fieldNames property have a 1-1 
 correspondence with the Types property?

 It appears that way in my testing:

 alias MyData = Tuple!(string,"a",int,"b");
 foreach (i, type; MyData.Types){
     writeln (MyData.fieldNames[i]," ",type.stringof);
     // a string
     // b int
 }

 But I can't figure out for sure from the documentation:

 alias fieldNames = staticMap!(extractName, fieldSpecs);
 alias Types = staticMap!(extractType, fieldSpecs);

 Thanks,

 Jordan
static map (and map in general) is a 1:1 correspondence, so yes.
Jun 30 2016
prev sibling parent Meta <jared771 gmail.com> writes:
On Thursday, 30 June 2016 at 21:53:42 UTC, Jordan Wilson wrote:
 Hello,

 For tuples, does the fieldNames property have a 1-1 
 correspondence with the Types property?

 It appears that way in my testing:

 alias MyData = Tuple!(string,"a",int,"b");
 foreach (i, type; MyData.Types){
     writeln (MyData.fieldNames[i]," ",type.stringof);
     // a string
     // b int
 }

 But I can't figure out for sure from the documentation:

 alias fieldNames = staticMap!(extractName, fieldSpecs);
 alias Types = staticMap!(extractType, fieldSpecs);

 Thanks,

 Jordan
It's an implementation detail but I wouldn't expect the order to ever change.
Jun 30 2016