【far 语言】List 列表

本文是「far 语言」系列文档之一,总目录见《【far 语言】语言文档目录》。

集合 List\<T>

List<T> 是 far 标准库提供的动态数组封装(底层 far_vec),业务层用语义方法而非裸数组语法。

导入与创建

import List;                    // 导入标准库

List l = new List();           // 裸 List(兼容旧用法)
List<long> nums = new List();  // 泛型实参

基本操作

List<long> nums = new List();
nums.add(1);                    // 追加
nums.add(2);
nums.add(3);

println(nums.size());           // 3
println(nums.get(1));           // 2
println(nums.toString());       // [1,2,3]

nums.clear();
println(nums.size());           // 0

泛型 + 数组

// 泛型实参 List<byte> + C 风格数组
List<byte> abc[3] = [];
abc[0] = new List();
abc[0].add(65);
abc[0].add(66);
println(abc[0].size());         // 2
println(abc[0].get(1));         // 66

与裸数组的区别

  • List 封装数组操作,提供 add/get/size/clear/toString 语义方法。
  • 泛型编译期擦除:List<long> 与裸 List 生成相同代码,无运行时开销。

标准库源码

class List<T> {
    T data[] = [];

    public void add(T item){ this.data.push(item); }
    public long size(){ return this.data.size(); }
    public T get(long i){ return this.data[i]; }
    public void clear(){ this.data = []; }
    public string toString(){ ... }
}
posted @ 2026-09-13 05:05  方东信  阅读(6)  评论(0)    收藏  举报