let 赋值表达式
语法
- let 变量或变量声明列表1 = 表达式
注释:
- 变量或变量声明列表 的定义如下:
- 变量或声明2
- 变量或变量声明列表 , 变量或声明
- 变量或声明 的定义如下:
描述
let 赋值表达式用于同时对多个变量进行赋值操作。
let 赋值表达式的左侧是一个由逗号分隔的变量或变量声明列表,右侧应当是一个至少有一个元素的数组。
赋值操作执行时,如果右侧并非一个数组或者右侧是一个空数组,抛出运行时错误。
GS 会从右侧的数组中从索引为 0 的元素开始,依次将数组元素中的值赋值给左侧对应的变量或变量声明。
如果对应位置是一个 变量,则如同 普通的赋值 操作一般将对
应的元素作为的左值。如果对应位置是一个 变量声明,则将对应的元素如同作为变量的初始值。
如果右侧数组的元素数量 多于 左侧的变量或变量声明数量,则多余的元素将被忽略;反之,如果右侧数
组的元素数量(N) 少于 左侧的变量或变量声明数量(M),则只对前 N 个变量或变量声明进行赋值操作,
剩余的 M-N 个:
- 变量 不发生赋值操作
- 变量声明 如同没有初始值的变量声明
int b = 15;
int c = 20;
let int a, b, c, int d = [5, 10];
// a 的值变为 5
// b 的值变为 10
// c 的值保持为 20,没有发生赋值操作
// d 如同没有初始值的变量声明,不能期待 d 有任何特定的值
作为表达式,let 赋值表达式的值是 int 类型的,表示右侧数组的元素数量。
示例
int b = 15;
int c = 20;
int val = let int a, b, c, int d = [5, 10];
writeln(a); // 输出 5
writeln(b); // 输出 10
writeln(c); // 输出 20
// writeln(d); // d 的值未定义,不能期待 d 有任何特定的值
writeln(val); // 输出 2,右侧数组有 2 个元素