34用d程式設計別名

2021-10-03 09:13:47 字數 1709 閱讀 9809

aliasalias this無關.

stack!

(point!

double

)randompoints

(size_t count)

可這樣:

長名,難讀,沒必要每個地點都詳細說明.如果改,也麻煩,到處改.

alias points = stack!

(point!

double);

// ...

points randompoints

(size_t count)

//還可以更進一步

alias precisepoint = point!

double

;alias points = stack!precisepoint;

語法如下:alias new_name = existing_name;

還有消歧時很有用.為了更可讀:

alias customernumber =

int;

alias companyname = string;

// ...

struct customer

//--------

class

box//

// ...

}

子類會隱藏父類同名函式

class

super

}class

sub: super

//覆蓋的話,要加個`override`,才算覆蓋.

//加上下句

alias foo = super.foo;

//滿血復活

//或alias generalfoo = super.foo;//類似

}void

main()

這個特徵叫隱藏名稱.不這樣的話,有可能你都不知道你呼叫了哪個父類的函式.錯都不知道哪錯了,這是物件導向程式設計的特徵

隱藏名稱同樣會對成員變數起作用:

class

super

class

sub: super

//屬性也可以隱藏父類名字

//加上這句

alias citycode = super.city;

}

with用於簡化書寫.特別是對麻煩的構,賦值時.

struct s 

void

main()

} with (s(

))//出來就沒了,不知道有啥用?

後面要講,用關鍵字,構建臨時變數來擴充套件生命期

開關語句中很有用:

enum color 

// ...

final switch

(c) with (color)

with移除對同一物件的重複引用.alias別名.

05用d程式設計切片

切片,動態陣列的別名.起.尾 是這樣的 即左包右不包 切片不是實體,就像鑰匙一樣.如果切片修改實體,則實體也跟著變了.a.a 大小為0,a.表示陣列長度,等價於陣列.長度.dup複製實體.如下 import std.stdio void main 賦值 int 3 a 1 1,1 int 3 b 2...

06用d程式設計 串

最簡單定義 char是串,字元陣列 d有三種陣列型別.import std.stdio void main 用 c z 可以看到結果,否則 回車 沒用.readf不適合讀串,讀符就差不多了.readln適合讀串,就不需要 s及 運算子了.如下 import std.stdio void main 可...

08用d程式設計域

不能在內部域中定義與外部域中相同的名字.有的在域的最前定義變數 一般在使用前定義變數,而不是在之後.找不到,也不規範 最好在剛要使用前定義,在速度,不犯錯,可讀,維護上都不錯.import std.stdio void main i 10 i 在 中宣告多種型別變數 d官方程式設計風格 三元符.三個...