类型强转

类型强转 是一种粗暴的机制,对于表达式按位模式解释,就好像它就是另一种类型。类型强转仅用于低层编程,并且本质上是不安全的。

  1. cast[int](x)

强制转换的目标类型必须是具体类型,例如,非具体的类型类目标将是无效的:

  1. type Foo = int or float
  2. var x = cast[Foo](1) # Error: 不能转换为非具体类型: 'Foo'

类型强转不应与 类型转换 混淆, 如前所述,与类型转换不同,类型强转不能更改被转换数据的底层位模式(除了目标类型的大小可能与源类型不同之外)。 强制转换类似于其他语言中的 类型双关 或 c++ 的 reinterpret_cast 和 bit_cast 特性。

如果目标类型的大小大于源类型的大小,则剩余的内存将被清零。