被輸入了該程序的源代碼的部分恒定值稱為 literals.
常值可以是任何基本數(shù)據(jù)類型,可以分為整數(shù)數(shù)字,浮點(diǎn)數(shù)字,字符,字符串和布爾值。
再次,文字將視為就像普通變量不同之處在于它們的值,不能在他們的定義后進(jìn)行修改。
整數(shù)文字可以是如下類型:
十進(jìn)制:使用與第一個(gè)數(shù)字是平日的定位表示不能為0作為數(shù)字被保留用于表示八進(jìn)制。這不包括0自身:0是零。
八進(jìn)制:使用0作為前綴碼。
二進(jìn)制:使用0b或0B作為前綴
十六進(jìn)制:使用0x或0X作為前綴。
整數(shù)文字也可以有一個(gè)后綴為U和L的組合,對(duì)于無(wú)符號(hào)長(zhǎng)分別。后綴可以是大寫或小寫,并且可以以任何順序。
當(dāng)你不使用后綴根據(jù)值的大?。篿nt, uint, long 和 ulong 由編譯器本身選擇。
這里是整數(shù)常量的一些例子:
212 // Legal 215u // Legal 0xFeeL // Legal 078 // Illegal: 8 is not an octal digit 032UU // Illegal: cannot repeat a suffix
以下是不同類型的整型常量的其他例子:
85 // decimal 0213 // octal 0x4b // hexadecimal 30 // int 30u // unsigned int 30l // long 30ul // unsigned long 0b001 // binary
浮點(diǎn)常量可以以十進(jìn)制系統(tǒng)在1.568或十六進(jìn)制被指定為0x91.bc.
在十進(jìn)制系統(tǒng)中,指數(shù)可以通過(guò)將字符e或E和一個(gè)數(shù)字后表示。例如,2.3e4表示“2.3倍10到4的冪值”。 A +字符可能指數(shù)前值來(lái)指定,但沒(méi)有效果。例如2.3e4和2.3E+4是相同的。- 字符前加指數(shù)的值改變了含義,“除以10的冪值”。例如,2.3E-2表示“2.3除以10,以2的冪”。
在十六進(jìn)制系統(tǒng),該值以任何0x或0X。該指數(shù)是由p或P指定的,而不是e或E的指數(shù)并不意味著“10的冪”,但“2的冪”。例如,在0xabc.defP4 P4的意思是“abc.de時(shí)間2到4的電源”。
下面是浮點(diǎn)常量的一些例子:
3.14159 // Legal 314159E-5L // Legal 510E // Illegal: incomplete exponent 210f // Illegal: no decimal or exponent .e55 // Illegal: missing integer or fraction 0xabc.defP4 // Legal Hexa decimal with exponent 0xabc.defe4 // Legal Hexa decimal without exponent.
默認(rèn)情況下,一個(gè)浮點(diǎn)字面的類型是double。f和F平均浮點(diǎn)值,以及L說(shuō)明符是指真實(shí)的。
有兩個(gè)布爾文字,他們是標(biāo)準(zhǔn)的D關(guān)鍵字的一部分:
真實(shí)代表true值。
虛假表示false值。
不應(yīng)該考慮true等于1值和false等于0值。
字符常量單引號(hào)括起來(lái)。
字符文字可以是一個(gè)普通的字符(e.g., 'x'), 轉(zhuǎn)義序列 (e.g., ' '), ASCII 字符(e.g., 'x21'), Unicode 字符(e.g., 'u011e') 或作為命名字符 (e.g. '©','♥', '€' ).
有某些字符在D中,當(dāng)他們前面加一個(gè)反斜杠,他們將有特殊的含義,它們是用來(lái)表示相同的換行符( n)或制表符( t)。在這里,有一些這樣的轉(zhuǎn)義序列代碼的列表:
轉(zhuǎn)義序列 | 含意 |
---|---|
character | |
' | ' character |
" | " character |
? | ? character |
a | Alert or bell |
Backspace | |
f | Form feed |
Newline | |
Carriage return | |
Horizontal tab | |
v | Vertical tab |
下面是例子來(lái)說(shuō)明幾個(gè)轉(zhuǎn)義序列字符:
import std.stdio; int main(string[] args) { writefln("Hello World%c ",'x21'); writefln("Have a good day%c",'x21'); return 0; }
當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:
Hello World! Have a good day!
字符串文本括在雙引號(hào)中。一個(gè)字符串包含的字符類似于字符文字:普通字符,轉(zhuǎn)義序列和通用字符。
可以打破一個(gè)長(zhǎng)行到使用字符串文字多行,用空格分開。
下面是字符串字面量的例子。
import std.stdio; int main(string[] args) { writeln(q"MY_DELIMITER Hello World Have a good day MY_DELIMITER"); writefln("Have a good day%c",'x21'); auto str = q{int value = 20; ++value;}; writeln(str);
在上面的例子中,可以找到使用q“MY_DELIMITER MY_DELIMITER”來(lái)表示多行字符。此外,還可以看到q{}來(lái)表示一個(gè)D語(yǔ)言語(yǔ)句本身。