D(编程语言)/d2/类型转换
外观
< D(编程语言)
(从 D(编程语言)/d2/第 5 课 重定向)在本课中,您将学习如何隐式和显式地转换变量的类型。
import std.stdio;
void main()
{
short a = 10;
int b = a;
// short c = b;
// Error: cannot implicitly convert
// expression b of type int to short
short c = cast(short)b;
char d = 'd';
byte e = 100;
wchar dw = 'd';
int f = d + e + dw;
writeln(f); //300
float g1 = 3.3;
float g2 = 3.3;
float g3 = 3.4;
int h = cast(int)(g1 + g2 + g3);
writeln(h); //10
int i = cast(int)g1 + cast(int)g2 + cast(int)g3;
writeln(i); //9
}
只要目标类型比原始类型更宽,就可以将整型类型的对象转换为另一整型类型的对象。这些转换是隐式的。
bool
⇒ int
byte
⇒ int
ubyte
⇒ int
short
⇒ int
ushort
⇒ int
char
⇒ int
wchar
⇒ int
dchar
⇒ uint
强制转换是告诉编译器尝试强制对象更改类型的一种方法。在 D 中,您可以通过编写 cast(type)
来实现。
- 您不能使用强制转换将整数值转换为字符串(反之亦然)。以后会学到一个库函数来实现这个功能。