本帖最后由 sid 于 2022-7-31 22:36 编辑
在程序中运用高维数组是常见的, 易语言也有高维数组, 但是运用方法和其他语言有区别. 本人在制作运用高维数组的程序过程中, 通过向他人求助和自己探索得出来易语言高维数组的特点和运用技巧, 鉴于论坛中这方面帖子不多, 在此发布相关教程.
一、高维数组的定义方式 一个让人向往的简单数组赋值方式是{{{},{}},{},{{},{},{}}}这样用花括号, 然而易语言不支持, 无法通过语法检测, 会报错编号为(42): 常数集定义格式错误. 不过可以先用一维数组写好(相当于按照不符合语法的那种方式写好之后删掉所有里面的大括号), 然后用"重定义数组"改成高维数组. 举例: 想要变量x是数组{{{3,4},{5,6}},{{1,2},{5,2}},{{1,7},{9,0}}}, 应该定义x为一维数组, 先x={3,4,5,6,1,2,5,2,1,7,9,0}, 然后重定义数组(x,真,3,2,2). 另外, 也可以用x[...][...][...]=...这样的一般赋值方法也是合法的.
二、高维数组用下标访问的时候 下面依然有x表示上面的数组. 按照正常的想法, x[1]返回的应该是x在第一个维度下(最外层的维度)的第一个元素(另外, 易语言数组下标从1开始不是0), 也就是{{3,4},{5,6}}. 但是事实上会返回第一个, 不考虑维度下的元素, 也就是3. 想要得到返回{{3,4},{5,6}}这一结果只能另写一个函数, 在其中建立临时变量, 用加入成员命令和x的下标访问来组件出来. 事实上, 我认为易语言数组功能在高维情况下不太理想.
三、欢迎提意见和分享其他能够达到目的的方法 我即将发布的源码分享作品就包含以上内容的程序, 我也是第一次用高维数组, 结合自己探索和网上资料, 如果有更好的方法我会改进. |