【问题标题】:Difference between cast(T)x and to!T(x)cast(T)x 和 to!T(x) 的区别
【发布时间】:2019-06-07 09:16:32
【问题描述】:

D编程语言中cast(T)xto!T(x)有什么区别? (前提是模块std.conv被导入)

【问题讨论】:

    标签: casting type-conversion d


    【解决方案1】:

    cast(T)x 进行了语言保证的几种类型的转换。其中包括:

    • 在类/接口类型之间进行动态转换,由运行时提供
    • 数字类型转换,例如 double 到 short
    • 数组类型转换,例如 int[] 到 ubyte[]
    • 强制进行 alias this 转换,否则不会强制进行
    • 类型仅系统转换,尤其是在constshared 附近

    to!T(x) 进行许多其他转换,最明显的是与字符串之间的转换。

    【讨论】:

    • 另外,to 始终是 @safe,因为如果演员表不安全(例如从不可变到可变),它会复制,所以如果你不这样做,请使用 to不想要动态转换,而只是类型之间的转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2018-01-22
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2021-03-30
    相关资源
    最近更新 更多