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語言語句本身。