跳转至

VARSETEX

函数名 参数 返回值
VARSETEX string, any(, int, int, int) 1

API

1 VARSETEX varName, value(, setAllDim, from, to)

与本家的 VARSET 类似,将名为 varName(字符串)的变量赋值为 value,而不是直接使用变量标识符。
setAllDim 不为 0 或直接省略时,将整个数组的所有元素赋值为 value;否则,只赋值给最低维度的数组。
可以用 from / to 两个参数来指定赋值数组开始和结束的位置(不包括下标为 to 的元素)。
省略 to 参数时,一直赋值到数组的末尾;省略 from 参数时,从数组的第一个元素(下标为 0)开始赋值。

提示

命令 / 行内函数两种写法均有效。

示例代码

DEFINE.ERH
#DIM 整型数组 = 1, 2, 3, 4, 5, 6
#DIM 二维整型数组, 3, 4
MAIN.ERB
@SYSTEM_TITLE
    #DIMS 临时字符串数组 = "Cat1", "Cat2", "Cat3"
    #DIM i
    #DIM j

    ; 省略第二个参数:预计在 v8 版本实现
    ; VARSETEX "临时字符串数组"
    VARSETEX "临时字符串数组", "dog"
    FOR i, 0, 3
        PRINTS 临时字符串数组:i + " "
    NEXT
    PRINTL
    ; 对于一维数组来说,第三个参数无所谓
    VARSETEX "整型数组", -1, 0, 3, 5
    FOR i, 0, 6
        PRINTFORMS @"{整型数组:i} "
    NEXT
    PRINTL
    ; 开始位置是数组 1 的下标 2,第四个参数为 1(包括的范围比 2 大,视为 2)
    ; 第三个参数为 0,因此只对数组 1 生效
    VARSETEX "二维整型数组:1:2", -1, 0, 1
    FOR i, 0, 3
        PRINTFORMS @"数组{i} -> "
        FOR j, 0, 4
            PRINTFORM {二维整型数组:i:j, 3, RIGHT}
        NEXT
        PRINTL
    NEXT
    PRINTL
    VARSET 二维整型数组

    ; 第三个参数省略时
    VARSETEX "二维整型数组:1:2", -1
    FOR i, 0, 3
        PRINTFORMS @"数组{i} -> "
        FOR j, 0, 4
            PRINTFORM {二维整型数组:i:j, 3, RIGHT}
        NEXT
        PRINTL
    NEXT

    ONEINPUT
输出结果
dog dog dog 
1 2 3 -1 -1 6 
数组0 ->   0  0  0  0
数组1 ->   0  0 -1 -1
数组2 ->   0  0  0  0

数组0 ->   0  0 -1 -1
数组1 ->   0  0 -1 -1
数组2 ->   0  0 -1 -1