字面量(Literals)可以是任何基本数据类型,并且可以分为整数,浮点数字,字符,字符串和布尔值。
再次,字面量与常规变量一样,只是它们的值在定义后不能修改。
整数字面量可以是以下类型的-
十进制使用正常数字表示形式,其中第一个数字不能为0,因为该数字保留用于表示八进制系统。
八进制使用0作为数字的前缀。
二进制使用0b或0B作为前缀。
十六进制使用0x或0X作为前缀。
如果不使用后缀,则编译器本身会根据值的大小在int,uint,long和ulong之间进行选择。
这是整数字面量的一些示例-
212 //有效 215u //有效
0xFeeL //有效
078 //无效:8 不是八进制数字 032UU //无效:不能重复后缀
以下是各种类型的整数literal的其他示例-
85 //十进制 0213 //八进制 0x4b //十六进制 30 //整数 30u //无符号整数 30l //长整数 30ul //无符号长整数 0b001 //二进制
浮点字面量可以在1.568中的十进制系统或在0x91.bc中的十六进制中指定。
这是浮点字面量的一些示例-
3.14159 //有效 314159E-5L //有效
510E //无效:不完整的指数 210f //无效:没有小数或指数
.e55 //无效:缺少整数或分数
0xabc.defP4 //带指数的合法十六进制十进制 0xabc.defe4 //没有指数的合法十六进制十进制。
默认情况下,浮点字面量的类型为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\tLearnfk%c\n",'\x21'); writefln("Have a good day%c",'\x21'); return 0; }
编译并执行上述代码后,将产生以下输出-
Hello Learnfk! Have a good day!
字符串字面量用双引号引起来,字符串包含与字符字面量相似的字符:纯字符,转义序列和通用字符。
您可以使用字符串字面量将长行分成多行,并使用空格分隔它们。
这是一些字符串字面量的示例-
import std.stdio; int main(string[] args) { writeln(q"MY_DELIMITER Hello Learnfk 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语言语句本身。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)