codecamp

D编程 字面量

字面量(Literals)可以是任何基本数据类型,并且可以分为整数,浮点数字,字符,字符串和布尔值。

再次,字面量与常规变量一样,只是它们的值在定义后不能修改。

整数字面量

整数字面量可以是以下类型的-

  • 十进制使用正常数字表示形式,其中第一个数字不能为0,因为该数字保留用于表示八进制系统。
  • 八进制使用0作为数字的前缀。
  • 二进制使用0b或0B作为前缀。
  • 十六进制使用0x或0X作为前缀。

如果不使用后缀,则编译器本身会根据值的大小在int,uint,long和ulong之间进行选择。

这是整数字面量的一些示例-

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

以下是各种类型的整数literal的其他示例-

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

浮点字面量

浮点字面量可以在1.568中的十进制系统或在0x91.bc中的十六进制中指定。

这是浮点字面量的一些示例-

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

字符字面量

字符字面量用单引号引起来,可以是普通字符(例如“ x”),转义序列(例如“\t”),ASCII字符(例如“\x21”),Unicode字符(例如“\u011e”)或 作为命名字符(例如'\&copy','\♥','\€'),在这里,您有一些此类转义序列代码的列表-

转义序列含义
\\\
\''
\""
\??
\a警报或响铃
\b退格键
\f换页
\n换行
\r回车
\t"水平"标签
\v"垂直"标签

以下示例显示了几个转义序列字符-

import std.stdio;
  
int main(string[] args) { 
   writefln("Hello\tWorld%c\n",'\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语言语句本身。


D编程 枚举
D编程 运算符
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }