D語言常值

被輸入了該程序的源代碼的部分恆定值稱爲 literals.

常值可以是任何基本數據類型,可以分爲整數數字,浮點數字,字符,字符串和布爾值。

再次,文字將視爲就像普通變量不同之處在於它們的值,不能在他們的定義後進行修改。

整數文字:

整數文字可以是如下類型:

  • 十進制:使用與第一個數字是平日的定位表示不能爲0作爲數字被保留用於表示八進制。這不包括0自身:0是零。

  • 八進制:使用0作爲前綴碼。

  • 二進制:使用0b或0B作爲前綴

  • 十六進制:使用0x或0X作爲前綴。

整數文字也可以有一個後綴爲U和L的組合,對於無符號長分別。後綴可以是大寫或小寫,並且可以以任何順序。

當你不使用後綴根據值的大小:int, uint, long 和 ulong 由編譯器本身選擇。

這裏是整數常量的一些例子:

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

浮點文本:

浮點常量可以以十進制系統在1.568或十六進制被指定爲0x91.bc.

在十進制系統中,指數可以通過將字符e或E和一個數字後表示。例如,2.3e4表示「2.3倍10到4的冪值」。 A +字符可能指數前值來指定,但沒有效果。例如2.3e4和2.3E+4是相同的。- 字符前加指數的值改變了含義,「除以10的冪值」。例如,2.3E-2表示「2.3除以10,以2的冪」。

在十六進制系統,該值以任何0x或0X。該指數是由p或P指定的,而不是e或E的指數並不意味着「10的冪」,但「2的冪」。例如,在0xabc.defP4 P4的意思是「abc.de時間2到4的電源」。

下面是浮點常量的一些例子:

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.

默認情況下,一個浮點字面的類型是double。f和F平均浮點值,以及L說明符是指真實的。

布爾文字:

有兩個布爾文字,他們是標準的D關鍵字的一部分:

  • 真實代表true值。

  • 虛假表示false值。

不應該考慮true等於1值和false等於0值。

字符文字:

字符常量單引號括起來。

字符文字可以是一個普通的字符(e.g., 'x'), 轉義序列 (e.g., ' '), ASCII 字符(e.g., 'x21'), Unicode 字符(e.g., 'u011e') 或作爲命名字符 (e.g. '©','♥', '€' ).

有某些字符在D中,當他們前面加一個反斜槓,他們將有特殊的含義,它們是用來表示相同的換行符( n)或製表符( t)。在這裏,有一些這樣的轉義序列代碼的列表:

轉義序列

含意

character

'

' character

"

" character

?

? character

a

Alert or bell



Backspace

f

Form feed

Newline

Carriage return

Horizontal tab

v

Vertical tab

下面是例子來說明幾個轉義序列字符:

import std.stdio; int main(string[] args) { writefln("Hello World%c
",'x21'); writefln("Have a good day%c",'x21'); return 0; }

當上面的代碼被編譯並執行,它會產生以下結果:

Hello World!
Have a good day!

字符串文字:

字符串文本括在雙引號中。一個字符串包含的字符類似於字符文字:普通字符,轉義序列和通用字符。

可以打破一個長行到使用字符串文字多行,用空格分開。

下面是字符串字面量的例子。

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」來表示多行字符。此外,還可以看到q{}來表示一個D語言語句本身。