W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
別名Aliase為現(xiàn)有名稱提供了備用名稱,別名的語(yǔ)法如下所示。
alias new_name=existing_name;
以下是較舊的語(yǔ)法,以防萬(wàn)一您引用一些較舊的格式示例,強(qiáng)烈建議不要使用此方法。
alias existing_name new_name;
表達(dá)式還有另一種語(yǔ)法,下面給出了該語(yǔ)法,在該語(yǔ)法中,我們可以直接使用別名而不是表達(dá)式。
alias expression alias_name ;
下面顯示了一個(gè)使用別名alise的簡(jiǎn)單示例,該示例使用提供類型轉(zhuǎn)換函數(shù)的std.conv標(biāo)頭。
import std.stdio;
import std.conv:to;
alias to!(string) toString;
void main() {
int a=10;
string s="Test"~toString(a);
writeln(s);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Test10
在上面的示例中,我們沒(méi)有使用to!string(a),而是將其分配給別名toString,以使其更方便和更易于理解。
讓我們看另一個(gè)示例,在該示例中,我們可以為元組設(shè)置別名。
import std.stdio;
import std.typetuple;
alias TypeTuple!(int, long) TL;
void method1(TL tl) {
writeln(tl[0],"\t", tl[1] );
}
void main() {
method1(5, 6L);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
5 6
在上面的示例中,將元組類型分配給了別名變量,它簡(jiǎn)化了方法定義和變量的訪問(wèn)。當(dāng)我們嘗試重用此類元組時(shí),這種訪問(wèn)方式甚至更有用。
很多時(shí)候,我們可能會(huì)定義需要在整個(gè)應(yīng)用程序中使用的通用數(shù)據(jù)類型,為了避免這種沖突,我們經(jīng)常將類型用作數(shù)據(jù)類型。一個(gè)簡(jiǎn)單的如下所示。
import std.stdio;
alias int myAppNumber;
alias string myAppString;
void main() {
myAppNumber i=10;
myAppString s="TestString";
writeln(i,s);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
10TestString
通常需要在子類中訪問(wèn)超類的變量,這可以通過(guò)別名來(lái)實(shí)現(xiàn),一個(gè)簡(jiǎn)單的如下所示。
import std.stdio;
class Shape {
int area;
}
class Square : Shape {
string name() const @property {
return "Square";
}
alias Shape.area squareArea;
}
void main() {
auto square=new Square;
square.squareArea=42;
writeln(square.name);
writeln(square.squareArea);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Square
42
別名aliase提供了用戶定義類型的自動(dòng)類型轉(zhuǎn)換的函數(shù),語(yǔ)法如下所示。
alias member_variable_or_member_function this;
下面顯示一個(gè)示例,以顯示別名this的函數(shù)。
import std.stdio;
struct Rectangle {
long length;
long breadth;
double value() const @property {
return cast(double) length * breadth;
}
alias value this;
}
double volume(double rectangle, double height) {
return rectangle * height;
}
void main() {
auto rectangle=Rectangle(2, 3);
writeln(volume(rectangle, 5));
}
在上面的示例中,您可以看到在此方法的別名幫助下將struct矩形轉(zhuǎn)換為double值,編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
30
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: