📅  最后修改于: 2023-12-03 14:40:54.664000             🧑  作者: Mango
在D编程语言中,元组是一种用于存储多个值的数据结构,它可以包含任何类型的值,包括不同类型的值。元组可以用括号表示,并使用逗号分隔值。
使用圆括号对元组的元素进行括起来,逗号用于分隔元素。以下是一个使用元组的例子:
auto exampleTuple = (1, 2, "three");
exampleTuple 这个元组现在包含了整数型1,整数型2和字符串型“three”。
还可以使所有值都要用同一类型。例子:
auto exampleTypedTuple = Tuple!(int, string, int)(1, "two", 3);
exampleTypedTuple 这个元组包含了整数1,字符串“two”和整数3。
可以使用 ".索引" 语法来访问元组中的单个元素。索引从0开始。
import std.stdio;
void main()
{
auto exampleTuple = (1, 2, "three");
writeln(exampleTuple[0]); // 1
writeln(exampleTuple[2]); // "three"
}
可以使用解包运算符从元组中提取元素并将其分配给变量。"..." 符号用于表示更多的值。
import std.stdio;
void main()
{
auto exampleTuple = (1, "two", 3);
int a;
string b;
int c;
(a, b, c) = exampleTuple;
writeln(a, b, c); // 1two3
auto (d, e, ..) = exampleTuple;
writeln(d, e); // 1two
}
第一个例子中,元组中的值a,b,c分别被分配到整数1,字符串“two”和整数3中。在第二个例子中,使用变量名d和e来访问元组的前两个元素,并使用 ".." 运算符忽略了第三个元素。
D中的元组是不可变的,无法更改元素的值。但是可以创建另一个元组,其内容与当前元组相同,只是更改了一个或多个元素的值。
import std.stdio;
void main()
{
auto exampleTuple = (1, 2, "three");
auto modifiedTuple = exampleTuple.dup;
modifiedTuple[0] = 4;
writeln(exampleTuple); // (1, 2, "three")
writeln(modifiedTuple); // (4, 2, "three")
}
可以使用 foreach 循环迭代元组。
import std.stdio;
void main()
{
auto exampleTuple = (1, "two", 3);
foreach (value; exampleTuple)
{
writeln(value);
}
}
输出为:“1 two 3”。
可以使用 the .length 属性来获取元组的大小。
auto exampleTuple = (1, "two", 3);
int size = exampleTuple.length; // 3
元组是一种有用的数据结构,允许您将多个值存储在一个变量中。使用圆括号分开元素,使用逗号分隔元素。元组是不可变的,但可以创建一个与当前元组内容相同的新元组,并更改一个或多个元素的值。元组也可以用于循环和迭代过程。注意:元组下标从0开始计数。
完整代码请见元组操作示例:https://run.dlang.io/is/fXpSbA。