cast(T)x 和 to!T(x) 的区别
Difference between cast(T)x and to!T(x)
D语言中cast(T)x
和to!T(x)
有什么区别? (前提是导入了模块std.conv
)
cast(T)x
进行了语言保证的几种类型的转换。其中包括:
- class/接口类型之间的动态转换,由运行时提供
- 数字类型转换,例如 double 到 short
- 数组类型转换,例如 int[] 到 ubyte[]
- 强制进行
alias this
否则不会被强制的转换
- 仅类型系统转换,尤其是在
const
和 shared
附近
to!T(x)
进行许多其他转换,尤其是字符串之间的转换。
D语言中cast(T)x
和to!T(x)
有什么区别? (前提是导入了模块std.conv
)
cast(T)x
进行了语言保证的几种类型的转换。其中包括:
- class/接口类型之间的动态转换,由运行时提供
- 数字类型转换,例如 double 到 short
- 数组类型转换,例如 int[] 到 ubyte[]
- 强制进行
alias this
否则不会被强制的转换 - 仅类型系统转换,尤其是在
const
和shared
附近
to!T(x)
进行许多其他转换,尤其是字符串之间的转换。