SimTalk中数组特点:

  • 第一个元素编号为1。
  • 当定义数组类型为any时,数组中不同的元素可以为不同的类型。
  • 数组的数据类型可以是list和table

 

常用函数:

makeArray(<Value1> [,<Value2>, …])

将多个值整合为一个一维数组。

示例:local intArrayVar : integer[2] := makeArray(1, 2)

isArray(Argument:<Value>)

判断一个变量是不是一个数组,是则返回True,不是则返回False。

示例:isArray(intArrayVar )   返回值为 True

append(Value:<any>)

向数组中添加数据。

示例:
local arr : string[];
arr.append(“a”);

copyFromTable([SourceRange:<listrange>,] SourceTable:<table>)

将表中的值复制到数组中,当表有多列时,数组必须是二维数组;当表只有一列时,数组为一维数组。

示例:arr.copyFromTable(TableFile)  /*将TableFile复制到数组arr中*/

copyFromTableColumn(SourceTable:<table>, Column:<integer>)

将表格中的某一列复制到一维数组中。

示例:arr.copyFromTableColumn(TableFile, 1)  /*将TableFile的第一列复制到数组arr中*/

copyToTable(TargetTable:<table> [,Column:<integer>, Row:<integer>])

将数组中的数据复制到表格中。

示例:arr.copyToTable(TableFile)  /*arr的值复制到TableFile中*/

copyToTableColumn(TargetTable:<table>, Column:<integer>)

将一维数组中的数据复制到表格的某一列中。

示例:arr.copyToTableColumn(TableFile, 1)  /*arr的值复制到TableFile的第一列中*/

delete([Index:<integer>])

删除数组中的某一数据。

示例:

local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
print arr;   /*输出值为[“a”,”b”,”c”]*/
arr.delete(2);
print arr;   /*输出值为[“a”,”c”]*/

dim

返回一维数组的长度。

示例:local n : integer := arr.dim;   /*如果arr为[“a”,”b”,”c”],则n=3*/

find(Value:<any> [,StartIndex:<integer])

查找数组中的值,并返回值的位置,如果找不到则返回0。

示例:

local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
local n:=arr.find(“b”);        /*默认从头开始查找,n=2*/
local m:=arr.find(“b”,3);   /*定义从第三位开始向后查找,第三位之后无”b”,m=0*/
local p:=arr.find(“d”);        /*数组中不存在”d”,p=0*/

insert(Index:<integer>, Value:<any)

向数组中的相应位置插入一个值。

示例:

local arr:string[];
arr:=makeArray(“a”,”b”,”c”);
arr.insert(2,”d”);      /*向arr的第二位插入”d”,arr变为[“a”,”d”,”b”,”c”]*/

sort

将数组按照从小到大的顺序排序。

示例:arr.sort;

xDim

返回二维数组的第一个维度的长度。

示例:

local matrix : real[2,3];
local n := matrix.xDim;    /*n=2*/

yDim

返回二维数组的第二个维度的长度

示例:

local matrix : real[2,3];
local n := matrix.yDim;    /*n=3*/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注