与胞元数组一样,构架数组(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)构架数组,这里我们采用的域名一些温室数据,如:温室名、容积、温度、湿度。下面我们看一下赋值法创建的“单构架”。特别注意:构架名与域名之间的小黑点“.”的作用。具体示例请看下图:

blob.png


3.向第二个构架赋值

     当我们向第二个构架赋值的时候就形成了构架数组,具体赋值情况如下图所示:

blob.png

4.构架数组的显示

对于非单构架,如果我们直接调用单构架名,看会显示什么结果呢?如下图所示,直接键入构架名通常只能得到该构架的结构信息,而不显示该构架域中具体的内容。

blob.png

5.构架元素的显示

对于单构架,直接调用该单构架名,当该构架域中的内容极为简单的数值变量或字符串的时候,会显示该构架的内容。如下图所示:

blob.png

6.构架域的显示

     当直接调用构架域名的时候,会显示该构架域中存放的具体内容,如下图所示:

blob.png

7.用法结:

  1. 1)直接对构架域赋值会产生“单构架”;

  2. 2)不同的域可以存放不同类型、不同大小的数据(数值、字符串、符号对象等);

  3. 3)对于非单构架,直接键入单构架名只显示该构架的结构信息;对于单构架,直接调用单构架名,当内容极为简单时会显示内容;

  4. 4)当调用构架域名时,会显示域中的具体内容。