不能在內部域中定義與外部域中相同的名字.
有的在域的最前
定義變數
一般在使用前定義變數,而不是在之後.//找不到,也不規範
最好在剛要使用前定義,在速度,不犯錯,可讀,**維護上
都不錯.
import std.stdio;
void
main()
i <10;
++i)
}
在{}中宣告多種型別變數
d官方程式設計風格
?:
,三元符.三個表示式,叫三元符.
真式/假式的型別不必相同,但必須要有公共型別
.計算涉及型別轉換/繼承
,結果還可能是左值/右值
確定表示式型別簡單方法:typeof(...).stringof
.
十進位制可用下劃線
數字分隔符,可千分可萬分,第1個字元不能為0,0x為16進製制,8進製,可在std.conv
裡面用octal!541
等初化.因為不常用,所以從語言轉向庫裡面了.
二進位制,0b
/0b
import std.stdio;
void
main()
l
字尾表長
.u/u
字尾表正
,ul/lu
表正長
,不用l
是避免與1
搞混.
浮點可用16進製表示:如0x9a.bc
.
十進位制中e/e
表以10為底的冪.可正可負.
16進製制中p/p
表以2為底的冪.0xabc.defp4
相當於*16=2^^4
.
對浮點.預設為雙精
,f/f
為浮,l
為實(80位,10位元組)
雙引號字元裡面可以包括以上.
反引號:所見即所得串.r"..."
,也是所見即所得
import std.stdio,std.conv;
writeln
(`c:\nurten`)
;writeln
(r"c:\nurten");
//如上一樣
writeln
(hexstring!
"44 64 69 6c 69");
writeln
("c:\nurten"
);
"\x44\x64\x69\x6c\x69"
,與(hexstring!"44 64 69 6c 69")
一樣,x"...."
已經過時了.
writeln
(q"my_delimiter
first line
second line
my_delimiter")
;
兩邊的分隔串是無意義的,可以取消.像q".hello."
列印出來什麼,很難確定.
q{},
.幫助編輯器顯示d源**
為了優化編譯時計算字面量的.
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 可...
11用d程式設計開關
switch expression if else等塊,會引進域.而case不會.switch value 可用goto.goto case 走到下個 goto default goto case 走到 表示式必須是整,串,極,即串可用作例.switch dievalue 值可以有區間.還可以並列....