Array α 是动态数组 的类型,其中元素来自 α。该类型在运行时有特殊支持。
数组在不共享时性能最佳。只要对数组的引用不超过一次,所有更新都将_破坏性地_执行。这导致性能与命令式编程语言中的可变数组相当。
数组有大小和容量。大小是数组中存在的元素数量,而容量是当前为元素分配的内存量。可以通过 Array.size 访问大小,但无法从Lean 代码中观察到容量。 Array.emptyWithCapacity n 创建一个等于 #[] 的数组,但内部分配了一个容量为 n 的数组。当大小超过容量时,需要分配以扩大数组。
从证明的角度来看,Array α 只是 List α 的包装。
构造子
Array.mk.{u}