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语言语句本身。
更多建议: