未检查数组
UncheckedArray[T] 类型是一种特殊的 数组 ,编译器不检查它的边界。 这对于实现定制灵活大小的数组通常很有用。 另外,未检查数组转换为不确定大小的C数组:
- type
- MySeq = object
- len, cap: int
- data: UncheckedArray[int]
大致生成C代码:
- typedef struct {
- NI len;
- NI cap;
- NI data[];
- } MySeq;
未检查数组的基本类型可能不包含任何GC内存,但目前尚未检查。
未来方向: 应该在未经检查的数组中允许GC内存,并且应该有一个关于GC如何确定数组的运行时大小的显式注释。