BT编程语言文档

解构赋值

功能

解构赋值用于一次从 array 或 object 中取出多个值并赋给变量。左侧使用类似元组的括号写法,但 BT 当前不提供独立的 tuple 类型,右侧值仍然保持原来的 array 或 object 类型。

语法

空格分隔和逗号分隔等价,也可以混合使用:

参数

  • 左侧变量:括号中的变量名列表,第一版只支持普通变量名。
  • 右侧 value:必须是 array 或 object。

返回值

解构赋值表达式的返回值为右侧 value,和普通赋值表达式保持一致。

数组解构按下标顺序读取。变量数量少于数组长度时,多余元素会被忽略;变量数量多于数组长度时,缺失位置赋值为 empty

对象解构按左侧变量名读取对象同名字段。字段不存在时,对应变量赋值为 empty

代码示例

数组解构:

对象解构:

单字段对象解构会保持引用语义:

赋值表达式返回右侧值:

for 循环解构当前 value:

循环解构只作用于每轮迭代得到的 value,不会改变普通 for key,value in users 的语义。

注意事项

右侧不是 array 或 object 时会产生运行时错误:

错误信息: