数组
数组是有序、可索引、由 GC 管理的集合。Array<T> 是内建类型提示契约,
用于检查边界;它不是通用脚本泛型,也不会转换元素。
字面量和索引
Section titled “字面量和索引”数组字面量使用方括号。索引从 0 开始;越界访问会按具体操作产生错误或由方法返回 Option。
fn second_reward() -> i64 { let rewards = [10i64, 20i64, 30i64] return rewards[1]}数组方法覆盖追加、移除和查询等常见操作。修改脚本数组会改变脚本堆上的值;修改宿主拥有的数组路径必须经过 HostAccess。
fn collect_large(values) { let out = [] for value in values { if value > 10 { out.push(value) } } return out}当值有可信的 Array<i64> 类型事实时,兼容的修改可以省掉额外运行时检查;
动态值写入会在修改前先检查:
fn append_score(scores: Array<i64>, value) { scores.push(4) // 静态兼容 scores.push(value) // 动态值,写入前检查 return scores}数组是可重复 sequence。iter() 创建 one-shot iterator,map 或 filter 等惰性适配器会在终端方法运行时消费该 iterator。
fn increment(values) { return values.iter().map(|value| value + 1).collect_array()}数组长度和元素访问都是受预算约束的操作。数组属于脚本堆,除非它是宿主转换返回的快照;Rust 宿主存储不会被放到脚本 GC 下。