【far 语言】数组

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

数组

Far 数组采用 C 风格声明:方括号挂在变量名后,字面量统一用方括号 [](2026-08-22 定稿)。 {} 花括号仅用于 map({k:v}),数组一律 [1,2,3]

声明

int data[3] = [1,2,3];              // 定长数组(初始化数量必须严格相等)
int z[3] = [];                      // 空数组:整体零值初始化
int n[3];                           // 裸声明:零值
string names[] = ["a","b","c"];     // 未定长(动态)
bb := ["4","5"];                 // := 推导(元素类型一致)
object x[] = [1, 2.1, "3"];         // 混合类型(元素统一 far 对象)

多维数组

int m[2][3] = [[1,2,3],[4,5,6]];    // 嵌套 far_vec
println(m[1][0]);                   // 4

多维声明必须显式写每一维长度。

访问与操作

names.push("d");        // 追加到末尾
names.unshift("z");     // 插入到开头
names.pop();            // 弹出末尾
names.shift();          // 弹出开头
names[0] = "x";         // 下标读写
println(sizeof(names)); // 长度(元素个数)
println(names[0]);      // 下标访问
  • 下标越界返回 0(不会崩溃)。
  • 支持 in 判断:if (2 in [1,2,3]) {...}

方法参数与返回

// 数组参数:定长 / 未定长
static long first(int x[3]){ return x[0]; }
static long second(string s[]){ return s[1]; }

// 返回数组(返回类型位置放行 [] 特例)
static int[] getList(){ return [1,2,3]; }

// 数组默认值
static long pick(int x[] = [7,8,9]){ return x[0]; }

注意事项

  • 禁止 int[] x 写法,必须 int x[]
  • 定长数组初始化数量必须严格相等:int x[3] = [1] 报错。
  • 数组字面量统一 []{1,2,3} / {}(数组语境)已废弃并报错,{} 仅用于 map({k:v})。
  • new int[5] 语法已废弃,用 C 风格声明。
posted @ 2026-09-13 05:05  方东信  阅读(5)  评论(0)    收藏  举报