cast(T)x和to!T(x)之间的差异

时间:2019-01-12 20:35:17

标签: casting type-conversion d

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

1 个答案:

答案 0 :(得分:3)

cast(T)x进行了几种语言所保证的转换。这些包括:

  • 由运行时提供的在类/接口类型之间进行动态转换的动态转换
  • 数字类型转换,例如从double转换为short
  • 数组类型强制转换,例如将int []转换为ubyte []
  • 强制执行alias this转换,否则将不会被强制
  • 键入仅系统的转换,尤其是在constshared周围

to!T(x)进行了许多其他转换,最明显的是往返于字符串的转换。