在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ D語(yǔ)言元組
類的訪問(wèn)修飾符
D語(yǔ)言運(yùn)算符
D語(yǔ)言邏輯運(yùn)算符
類指針
D語(yǔ)言元組
D語(yǔ)言指針
D語(yǔ)言模塊
D語(yǔ)言sizeof運(yùn)算符
D語(yǔ)言混合類型
D語(yǔ)言封裝
D語(yǔ)言條件編譯
類的靜態(tài)成員
D語(yǔ)言do...while循環(huán)
D語(yǔ)言結(jié)構(gòu)體
重載
D語(yǔ)言字符串-String
D語(yǔ)言決策語(yǔ)句
D語(yǔ)言接口
D語(yǔ)言for循環(huán)
D語(yǔ)言switch語(yǔ)句
D語(yǔ)言關(guān)聯(lián)數(shù)組
D語(yǔ)言范圍
D語(yǔ)言枚舉Enums
契約式編程
D語(yǔ)言并發(fā)
D語(yǔ)言開發(fā)環(huán)境設(shè)置
D語(yǔ)言別名
D語(yǔ)言常值
D語(yǔ)言常量
D語(yǔ)言函數(shù)
D語(yǔ)言if嵌套語(yǔ)句
D語(yǔ)言循環(huán)
D語(yǔ)言概述,D語(yǔ)言是什么?
D語(yǔ)言運(yùn)算符優(yōu)先級(jí)
D語(yǔ)言continue語(yǔ)句
D語(yǔ)言異常處理
D語(yǔ)言break語(yǔ)句
D語(yǔ)言if...else語(yǔ)句
D語(yǔ)言類和對(duì)象
類繼承
D語(yǔ)言字符
D語(yǔ)言教程
D語(yǔ)言關(guān)系運(yùn)算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語(yǔ)言抽象類
D語(yǔ)言if語(yǔ)句
D語(yǔ)言賦值運(yùn)算符
D中算術(shù)運(yùn)算符
D語(yǔ)言類成員函數(shù)
D語(yǔ)言位運(yùn)算符
D語(yǔ)言變量
D語(yǔ)言數(shù)據(jù)類型
D語(yǔ)言文件I/O
D語(yǔ)言數(shù)組
一元運(yùn)算符重載
D語(yǔ)言嵌套switch語(yǔ)句
D語(yǔ)言基本語(yǔ)法
二元運(yùn)算符重載
this指針
D語(yǔ)言聯(lián)合體
D語(yǔ)言模板
D語(yǔ)言嵌套循環(huán)
D語(yǔ)言while循環(huán)

D語(yǔ)言元組

元組用于組合多個(gè)值作為單個(gè)對(duì)象。元組包含的元素的序列。元素可以是類型,表達(dá)式或別名。元組的數(shù)目和元件固定在編譯時(shí),它們不能在運(yùn)行時(shí)改變。

元組有兩個(gè)結(jié)構(gòu)和數(shù)組的特性。元組元素可以是不同的類型,如結(jié)構(gòu)的。該元素可以通過(guò)索引數(shù)組一樣訪問(wèn)。它們是由從std.typecons模塊的元組模板實(shí)現(xiàn)為一個(gè)庫(kù)功能。元組利用TypeTuple從一些業(yè)務(wù)的std.typetuple模塊。

使用元組tuple()

元組可以由函數(shù)tuple()來(lái)構(gòu)造。一個(gè)元組的成員由索引值訪問(wèn)。一個(gè)例子如下所示。

import std.stdio;
import std.typecons;

void main()
{
   auto myTuple = tuple(1, "Tuts");
   writeln(myTuple);
   writeln(myTuple[0]);
   writeln(myTuple[1]);
}

當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:

Tuple!(int, string)(1, "Tuts")
1
Tuts

使用元組元組模板

元組也可以由元組模板而不是tuple()函數(shù)直接構(gòu)造。每個(gè)成員的類型和名稱被指定為兩個(gè)連續(xù)的模板參數(shù)。它可以通過(guò)屬性使用模板創(chuàng)建的時(shí)候訪問(wèn)的成員。

import std.stdio;
import std.typecons;

void main()
{
   auto myTuple = Tuple!(int, "id",string, "value")(1, "Tuts");
   writeln(myTuple);

   writeln("by index 0 : ", myTuple[0]);
   writeln("by .id : ", myTuple.id);

   writeln("by index 1 : ", myTuple[1]);
   writeln("by .value ", myTuple.value);
}

當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:

Tuple!(int, "id", string, "value")(1, "Tuts")
by index 0 : 1
by .id : 1
by index 1 : Tuts
by .value Tuts

擴(kuò)展屬性和函數(shù)參數(shù)

元組的成員可以通過(guò).expand擴(kuò)展屬性或通過(guò)切片進(jìn)行擴(kuò)展。這種擴(kuò)展/切片值可以作為函數(shù)的參數(shù)列表。一個(gè)例子如下所示。

import std.stdio;
import std.typecons;
void method1(int a, string b, float c, char d)
{
   writeln("method 1 ",a,"	",b,"	",c,"	",d);
}
void method2(int a, float b, char c)
{
   writeln("method 2 ",a,"	",b,"	",c);
}
void main()
{
   auto myTuple = tuple(5, "my string", 3.3, 'r');

   writeln("method1 call 1");
   method1(myTuple[]);

   writeln("method1 call 2");
   method1(myTuple.expand);

   writeln("method2 call 1");
   method2(myTuple[0], myTuple[$-2..$]);
}

當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:

method1 call 1
method 1 5	my string	3.3	r
method1 call 2
method 1 5	my string	3.3	r
method2 call 1
method 2 5	3.3	r

TypeTuple

TypeTuple在std.typetuple模塊中定義。值和類型的逗號(hào)分隔的列表。使用TypeTuple一個(gè)簡(jiǎn)單的例子如下。 TypeTuple用于創(chuàng)建參數(shù)列表,模板列表和數(shù)組文本列表。

import std.stdio;
import std.typecons;
import std.typetuple;

alias TypeTuple!(int, long) TL;

void method1(int a, string b, float c, char d)
{
   writeln("method 1 ",a,"	",b,"	",c,"	",d);
}
void method2(TL tl)
{
   writeln(tl[0],"	", tl[1] );
}

void main()