📜  D编程-元组(1)

📅  最后修改于: 2023-12-03 14:40:54.664000             🧑  作者: Mango

D编程-元组

在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。