FAQ > 客户端升级

2023-08-30客户端升级说明:深度遍历    

简述
更新日志--------2023-08-30
升级:增加:.算符以及:.=,使用方式和::以及::=一样,对于fmarray而言行为一致,但对于数组而言,不假定维度数,而是对数组的节点进行深度遍历。
升级:增加:mfindsparse,对于fmarray而言行为一致,但对于数组而言,不假定维度数,而是对数组的节点进行深度遍历。
  • 2023-08-30 升级说明

    说明:新增深度遍历算符与查找函数,该功能目前只在测试服务器与本地解释器中支持,正式服务器机群暂时没有更新。
    ------------------------------------------------------
    升级:增加:.算符以及:.=,使用方式和::以及::=一样,对于fmarray而言行为一致,但对于数组而言,不假定维度数,而是对数组的节点进行深度遍历。

    说明:新增运算符:.与:.。功能与使用方式分别同::与::=,区别为:
    对于多维数组array而言,::与::=最多遍历两个维度,而:.与:.=可以遍历到数组的最深维度。
    如:
     t:=array(1,(21,22),(23,24,(31,32)));
     r1:=array();
     k1:=0;
     t::r1[k1++]:=mcell;
     
     r2:=array();
     k2:=0;
     t:.r2[k2++]:=mcell;


    返回上述案例中的r1与r2,结果分别为:
     
    可以看出在多维数组中,::遍历只能遍历到第二维,而r2可以遍历到多维数组的每个元素。
    ------------------------------------------------------
    升级:增加:mfindsparse,对于fmarray而言行为一致,但对于数组而言,不假定维度数,而是对数组的节点进行深度遍历。

    说明:功能与使用说明同mfind,区别为:
    对于多维数组array的查询与替代功能中,mfind最多遍历两个维度,而mfindsparse可以遍历到数组的最深维度。
    如:
     t:=array((21,22),(23,24,(31,32)));
     r1:=mfind(t);
     r2:=mfindsparse(t);

    返回上述案例中的r1与r2,结果分别为:
     
    可以看出在多维数组中,mfind查找只能查找到第二维,而mfindsparse可以查找到多维数组的每个元素的位置。
    ------------------------------------------------------