Je suppose que vous utilisez D2 parce que je ne sais pas à propos de D1.
En std.typecons
il y a tuple
et Tuple
qui vous permettent d'utiliser ces « non remboursable » compilation alias tuples fois que vous mentionnez pour créer des valeurs d'exécution.
import std.typecons, std.stdio;
Tuple!(int, string, int[]) f() {
return tuple(5, "xyz", [3, 4, 5]);
}
void main() {
auto x = f();
writefln("%s is %s", x[1], x[0]);
//indices have to be copile-time constants
}
Utilisez tuple(v1, v2)
comme la valeur et Tuple!(T1, T2)
comme son type.
Si vous voulez vraiment une liste de choses que vous ne connaissez pas le type au moment de la compilation, importez std.variant
puis Variant[]
comme une liste de ces choses.
Les tuples sont retournables. Les tuples de type ne le sont pas; ils sont un peu différents. – Mehrdad