D編程 字面量

2021-09-01 10:17 更新

字面量(Literals)可以是任何基本數(shù)據(jù)類型,并且可以分為整數(shù),浮點(diǎn)數(shù)字,字符,字符串和布爾值。

再次,字面量與常規(guī)變量一樣,只是它們的值在定義后不能修改。

整數(shù)字面量

整數(shù)字面量可以是以下類型的-

  • 十進(jìn)制使用正常數(shù)字表示形式,其中第一個(gè)數(shù)字不能為0,因?yàn)樵摂?shù)字保留用于表示八進(jìn)制系統(tǒng)。
  • 八進(jìn)制使用0作為數(shù)字的前綴。
  • 二進(jìn)制使用0b或0B作為前綴。
  • 十六進(jìn)制使用0x或0X作為前綴。

如果不使用后綴,則編譯器本身會(huì)根據(jù)值的大小在int,uint,long和ulong之間進(jìn)行選擇。

這是整數(shù)字面量的一些示例-

212         //Legal 
215u        //Legal 
0xFeeL      //Legal 
078         //Illegal: 8 is not an octal digit 
032UU       //Illegal: cannot repeat a suffix 

以下是各種類型的整數(shù)literal的其他示例-

85         //decimal 
0213       //octal
0x4b       //hexadecimal 
30         //int 
30u        //unsigned int 
30l        //long 
30ul       //unsigned long 
0b001      //binary

浮點(diǎn)字面量

浮點(diǎn)字面量可以在1.568中的十進(jìn)制系統(tǒng)或在0x91.bc中的十六進(jìn)制中指定。

這是浮點(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)情況下,浮點(diǎn)字面量的類型為double, f和F表示浮點(diǎn)數(shù),L指示符表示實(shí)數(shù)。

布爾字面量

有兩個(gè)布爾字面量,它們是標(biāo)準(zhǔn)D關(guān)鍵字的一部分-

  • true
  • false

字符字面量

字符字面量用單引號(hào)引起來(lái),可以是普通字符(例如“ x”),轉(zhuǎn)義序列(例如“\t”),ASCII字符(例如“\x21”),Unicode字符(例如“\u011e”)或 作為命名字符(例如'\&copy','\?','\€'),在這里,您有一些此類轉(zhuǎn)義序列代碼的列表-

轉(zhuǎn)義序列含義
\\\
\''
\""
\??
\a警報(bào)或響鈴
\b退格鍵
\f換頁(yè)
\n換行
\r回車
\t"水平"標(biāo)簽
\v"垂直"標(biāo)簽

以下示例顯示了幾個(gè)轉(zhuǎn)義序列字符-

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

編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-

Hello   World!

Have a good day!

字符串字面量

字符串字面量用雙引號(hào)引起來(lái),字符串包含與字符字面量相似的字符:純字符,轉(zhuǎn)義序列和通用字符。

您可以使用字符串字面量將長(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 {}代表D語(yǔ)言語(yǔ)句本身。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)