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

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

D語言別名

別名,正如它的名字是指為現(xiàn)有名稱的替代名稱。別名的語法如下所示。

alias new_name = existing_name;
以下是較舊的語法,以防萬一指定一些較舊的格式的例子。不推薦使用。
alias existing_name new_name;

還有用于與表達,它是下面給出中,我們可以直接使用,而不是表達的別名另一種語法。

alias expression alias_name ;

可能了解,typedef增加了創(chuàng)建新類型的能力。別名可以作為一個typedef類似的工作,甚至更多。一個簡單的例子,使用別名,如下圖所示,使用std.conv頭,它提供了類型轉(zhuǎn)換的能力。

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)生什么結(jié)果如下:

Test10

在上面的例子,而不是使用!string(a),我們已經(jīng)分配給它的別名的toString使其更方便和更容易理解,我們。

元組別名

讓我們來看看另一個例子,我們可以為一個元組設(shè)置別名。

import std.stdio;
import std.typetuple;

alias TypeTuple!(int, long) TL;

void method1(TL tl)
{
   writeln(tl[0],"	", tl[1] );
}

void main()
{
   method1(5, 6L);   
}

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

5	6

在上面的示例中,類型的元組被分配給變量的別名,它簡化了的方法的定義和變量的訪問。當我們嘗試重用這種類型的元組的這種訪問是更加有用。

別名數(shù)據(jù)類型

很多時候,我們可以定義一個需要在整個應(yīng)用程序中使用通用數(shù)據(jù)類型。當多個程序員編寫一個應(yīng)用程序,它可以是情況下,一個人使用整型,另一雙等。為了避免這種沖突,我們經(jīng)常使用類型的數(shù)據(jù)類型。一個簡單的例子如下所示。

import std.stdio;

alias int myAppNumber;
alias string myAppString;

void main()
{
   myAppNumber i = 10;
   myAppString s = "TestString";
  
   writeln(i,s);  
}

當上面的代碼被編譯并執(zhí)行,它會產(chǎn)生什么結(jié)果如下:

10TestString

類變量別名

如果不熟悉的類和繼承的概念,看看關(guān)于classesand繼承教程開始本節(jié)之前。往往有規(guī)定,我們需要訪問的子類父類的成員變量,這可以成為可能的別名,可能以不同的名稱。一個簡單的例子如下所示。

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)生結(jié)果如下:

10TestString

this別名

這個別名提供了用戶自定義類型的自動類型轉(zhuǎn)換的能力。其語法如下所示,其中的關(guān)鍵字的別名,這都寫在成員變量或者成員函數(shù)的兩側(cè)。

alias member_variable_or_member_function this;

一個例子如下所示,顯示此別名的能力。

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));
}

在上面的例子中,可以看到,結(jié)構(gòu)矩形轉(zhuǎn)換為double值,在別名的幫助下這個方法。此代碼被編譯并執(zhí)行,它會產(chǎn)生結(jié)果如下:

30

上一篇:D語言常值下一篇:D語言變量