08用d程式設計域

2021-10-03 09:09:39 字數 1795 閱讀 7622

不能在內部域中定義與外部域中相同的名字.

有的在域的最前定義變數

一般在使用前定義變數,而不是在之後.//找不到,也不規範

最好在剛要使用前定義,在速度,不犯錯,可讀,**維護上都不錯.

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 值可以有區間.還可以並列....