与胞元数组一样,构架数组(structure array)也能在一个数组里面方各类数据。从一定意义上讲,构架数组的组织数据的能力要比胞元数组更强,而且更富于变化。这篇经验我们就讲解一下,如何简单的创建单构架数组,以及如何调用显示构架数组。
1.构架数组与胞元数组
胞元数组是以“编号”为手段寻访的,可以说是存放不同大小、不同类型数据的异构容器。这次我们介绍的构架数组则是以“名称”为手段寻访的,存放不同大小、不同类型数据的异构容器。
构架数组的基木组分是构架(structure)。数组中的每个构架是平等的,以下标区分。构架必须在划分“域”后才能使用。数据不能直接存放于构架,而只能存放在域中。构架的域则可以存放任何类型、任何大小的数组(如任意维数值数组、字符串数组、符号对象等)。而且不同构架的同名域中存放的内容可以不同。
与数值数组一样,构架数组维数不受限制,可以是一维、二维,或更高维,不过一维构架数组用得址多;构架数组对构架的编址方法也有.单下标编址和全下标编址两种。
为便于比较,下标给出了构架数组与胞元数组的异同之点。
构架数组 |
胞元数组 |
|
举例 |
(3×4)构架数组B,它有名为f1,f2的两个域 |
(3×4)胞元数组A |
基本组分 |
构架(structure) |
胞元(cell) |
基本组分编址 |
任何类型(如数值、字符、胞元、构架等及其他对象)。 |
|
直接存放数据场所 |
“域”,如构架域B(1,2).f |
子胞元本身,如子胞元A(1,2) |
基本组分寻访方式 |
通过“下标编号”寻访元构架,如B(1,2) |
通过“下标编号”寻访子胞元,如:A(1,2) |
具体内容寻访方式 |
由“域名”标识元构架域内容;如:B(1,2).f |
由“花括号内下标编号”标志子胞元,如:A{1,2} |
胞元数组与构架 数组转换指令 |
struc2cell |
cell2struc |
2.赋值法产生“单构架”
在这一步我们直接对域采用赋值法产生“单构架”,即(1*1)构架数组,这里我们采用的域名一些温室数据,如:温室名、容积、温度、湿度。下面我们看一下赋值法创建的“单构架”。特别注意:构架名与域名之间的小黑点“.”的作用。具体示例请看下图:
3.向第二个构架赋值
当我们向第二个构架赋值的时候就形成了构架数组,具体赋值情况如下图所示:
4.构架数组的显示
对于非单构架,如果我们直接调用单构架名,看会显示什么结果呢?如下图所示,直接键入构架名通常只能得到该构架的结构信息,而不显示该构架域中具体的内容。
5.构架元素的显示
对于单构架,直接调用该单构架名,当该构架域中的内容极为简单的数值变量或字符串的时候,会显示该构架的内容。如下图所示:
6.构架域的显示
当直接调用构架域名的时候,会显示该构架域中存放的具体内容,如下图所示:
7.用法小结:
1)直接对构架域赋值会产生“单构架”;
2)不同的域可以存放不同类型、不同大小的数据(数值、字符串、符号对象等);
3)对于非单构架,直接键入单构架名只显示该构架的结构信息;对于单构架,直接调用单构架名,当内容极为简单时会显示内容;
4)当调用构架域名时,会显示域中的具体内容。