detuple
shown here with a tuple type that has three slots.
Name | Type | Description | Optional |
---|---|---|---|
input |
?0 |
a tuple |
no |
Name | Type | Description | Optional |
---|---|---|---|
taken from tuple type |
taken from tuple type |
first slot of the input tuple |
yes |
taken from tuple type |
taken from tuple type |
second slot of the input tuple |
yes |
… |
|||
taken from tuple type |
taken from tuple type |
final slot of the input tuple |
yes |
detuple
takes an input of tuple type, and outputs its individual slots. See the example SpecialNodes/detuple:
Here, the tuple type is <int a, double b, string c>
. The output side of the detuple
node therefore has three ports. Running the example yields this:
The tuple type for a detuple
, tuple
, retuple
, pack
, unpack
, repack
, complete
, or total
node comes from the link connected to its tuple side, i.e., the input side of a detuple
, unpack
, complete
or total
node, and the output side of a tuple
, retuple
, pack
, or repack
node. The link type can in turn come from the node that is attached to the other end of the link, or it may be set explicitly in the inspector. In the example above, the link entering the detuple
node has had its type set explicitly, hence the blue highlight.
It is common to use detuple
to extract an individual slot, or a handful of slots, from a tuple value. In this snippet:
The extract node (in this case it is $AWS$DynamoDB$ExportTableToPointInTimeResponseExtract
) outputs a tuple whose first slot is a (much larger) tuple. Only the second output port of the second detuple
node is connected; the program is extracting just that slot and ignoring the rest.
In a case like this in which several detuple
operations are chained together in order to extract a property that is buried inside a complex structure, the unpack
node can be used instead. It extracts all the properties from a nest of tuples and presents them together as the outputs of the node.