結構是值型別
,直接複製.可有預設值.如果未初化,則成員自動用該型別的預設值.
struct timeofday
//定義
auto periodstart =
timeofday(8
,30);
auto periodduration =
timeofday(1
,15);
immutable periodstart =
timeofday(8
,30);
immutable periodduration =
timeofday(1
,15);
//不變,動,枚,都具有自動推導的能力.
import std.math;
struct test
//可一次初化0~3個,因為每種型別都預設初化.有預設初化值
struct test
//還可以這樣,
可以這樣:
timeofday periodstart =
;//比c++多了乙個`=`號,這是類`c`風格.
也可以這樣:
timeofday t =
;auto yourlunchtime =
timeofday(12
,0);
auto mylunchtime = yourlunchtime;
//按值複製
小心,按值複製過程中,有些成員是鑰匙.複製過去的仍然是鑰匙,而不是實體.如
struct student
auto student1 =
student(1
,[70,
90,85]
);auto student2 = student1;
//複製
student2.number =2;
//第乙個是實體
student1.grades[0]
+=5;
//實體在修改
writeln
(student2.grades[0]
);//可見,在鑰匙眼裡,已經變了.要小心.
auto student2 =
student(2
, student1.grades.dup)
;//這樣,複製了個新實體.
student1.grades[0]
+=5;
writeln
(student2.grades[0]
);
靜態成員可在static this()
中初化,在static ~this()
中析構
import std.file;
struct point
}static
~this()
//在此析構
}
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官方程式設計風格 三元符.三個...