• 未检查数组

    未检查数组

    UncheckedArray[T] 类型是一种特殊的 数组 ,编译器不检查它的边界。 这对于实现定制灵活大小的数组通常很有用。 另外,未检查数组转换为不确定大小的C数组:

    1. type
    2. MySeq = object
    3. len, cap: int
    4. data: UncheckedArray[int]

    大致生成C代码:

    1. typedef struct {
    2. NI len;
    3. NI cap;
    4. NI data[];
    5. } MySeq;

    未检查数组的基本类型可能不包含任何GC内存,但目前尚未检查。

    未来方向: 应该在未经检查的数组中允许GC内存,并且应该有一个关于GC如何确定数组的运行时大小的显式注释。