跳转到内容

D(编程语言)/d2/类型转换

50% developed
来自维基教科书,自由的教科书

第 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
}

隐式整型转换

[编辑 | 编辑源代码]

只要目标类型比原始类型更宽,就可以将整型类型的对象转换为另一整型类型的对象。这些转换是隐式的。

boolint
byteint
ubyteint
shortint
ushortint
charint
wcharint
dcharuint

显式转换

[编辑 | 编辑源代码]

强制转换是告诉编译器尝试强制对象更改类型的一种方法。在 D 中,您可以通过编写 cast(type) 来实现。

  • 您不能使用强制转换将整数值转换为字符串(反之亦然)。以后会学到一个库函数来实现这个功能。
华夏公益教科书