跳到主要内容
版本:release

let 赋值表达式

语法

  • let 变量或变量声明列表1 = 表达式

注释:

  1. 变量或变量声明列表 的定义如下:
  • 变量或声明2
  • 变量或变量声明列表 , 变量或声明
  1. 变量或声明 的定义如下:

描述

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 个元素