上海网站建设哪,流行的网站开发语言,seo网站推广全程实例,深圳网站建设 名片设计 网站管理结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“属性”#xff08;亦称之为“成员”#xff09;#xff0c;这些成员可以是变量、数组、字符串以及结构等类型数据。IDL中常用于函数返回值#xff08;PS#xff1a;因为IDL中函数最多… 结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“属性”亦称之为“成员”这些成员可以是变量、数组、字符串以及结构等类型数据。IDL中常用于函数返回值PS因为IDL中函数最多只能返回一个参数因此当需要返回多个变量时可以组合成一个变量作为返回值。 注属性名必须的命名规范必须和变量命名一致不能含有汉字
Pig Create_struct([名字,weight],来福,200,NamePelosi)
% CREATE_STRUCT: Illegal tag name: 名字.
% Execution halted at: $MAIN$ PS我习惯matlab的用法喜欢称之为“属性”相对来说“成员”更为贴切。
1. 创建结构体 IDL结构体包含两个结构体类型命名结构体署名结构体typename、匿名结构体。
1.1 直接创建
1.1.1 命名结构体 创建结构体时用大括号“{}” 命名结构体创建之时需要赋予结构体名称。 创建格式变量名{署名,属性1::值1,属性2:值2……} ; 之所以称之为命名结构体是因为代码中有一个名称Dogname和weight是结构体中的属性属性后面是对应的属性值两者用“:”连接
help,Pet ; 结构体Pet信息名称DOG2个成员变量属性name、weight及对应的属性值
** Structure DOG, 2 tags, length32, data length32:NAME STRING 来福WEIGHT STRING 20Kg
Pet.NAME ; 查看属性name属性值
来福
Pet.WEIGHT ; 查看属性weight的属性值
20Kg
Pet {Pig,name:Pelosi,weight:200Kg} ; 例子2
help,pet
** Structure PIG, 2 tags, length32, data length32:NAME STRING PelosiWEIGHT STRING 200Kg 1.1.2 匿名结构体 与命名结构体相比无需署名 创建格式变量名{署名,属性1::值1,属性2:值2……}
Pig {name:Pelosi,weight:200Kg}
help,Pig
** Structure 34b4c630, 2 tags, length32, data length32, refs1:NAME STRING PelosiWEIGHT STRING 200Kg 注显示的时候由于没有署名所以显示的是存储的ID号。
1.2 利用函数创建结构体
1.2.1 Create_struct函数 可以利用Create_struct()函数创建结构体。 函数语法 Result CREATE_STRUCT( [Tag1, Values1, ..., Tagn, Valuesn] [, Structuresn] [, NAMEstring]) Result CREATE_STRUCT( [Tags, Values1, ..., Valuesn][, Structuresn] [, NAMEstring]) 其中参数name表示署名例如创建一个Pig结构体命名结构体和匿名结构体具有name和weight属性 第1种函数用法创建结构体
Pig Create_struct(name,来福,weight,20Kg,NamePelosi) ; 命名
help,Pig
** Structure PELOSI, 2 tags, length32, data length32:NAME STRING 来福WEIGHT STRING 20Kg
Pig Create_struct(name,来福,weight,20Kg) ; 匿名
Pig
{NAME: 来福,WEIGHT: 20Kg
}
第2种函数用法创建结构体
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pig
{NAME: 来福,WEIGHT: 200 此外Create_struct()函数还可以在原有的基础上链接现有的结构体。
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pet Create_struct(Pig,country,USA)
help,Pig
** Structure PELOSI, 2 tags, length32, data length32:NAME STRING 来福WEIGHT STRING 200
help,Pet
** Structure 374499a0, 3 tags, length48, data length48, refs1:NAME STRING 来福WEIGHT STRING 200COUNTRY STRING USA
1.2.2 Replicate函数 也可以用Replicate()函数创建结构体
语法 Result REPLICATE( Value, D1[, ..., D8] )
Name REPLICATE(Hlz, 5, 5)
Name
Hlz Hlz Hlz Hlz Hlz
Hlz Hlz Hlz Hlz Hlz
Hlz Hlz Hlz Hlz Hlz
Hlz Hlz Hlz Hlz Hlz
Hlz Hlz Hlz Hlz Hlz
help,Name
NAME STRING Array[5, 5]
Name REPLICATE(Pig, 2, 2)
Name
[{NAME: 来福,WEIGHT: 200},{NAME: 来福,WEIGHT: 200},{NAME: 来福,WEIGHT: 200},{NAME: 来福,WEIGHT: 200}
]
help,name
NAME STRUCT - PELOSI Array[2, 2]
2 结构体操作
2.1 查看结构体 可以利用help函数、N_Tags()函数、Tag_Name()函数查看相关信息
help函数查看结构体相关信息最全显示N_Tags()函数查看结构体属性成员个数Tag_Name()函数显示结构体的属性名成员名.Tname显示变量类型.typename显示署名
Pig Create_struct([name,weight],来福,200,NamePelosi)
help,Pig
** Structure PELOSI, 2 tags, length32, data length32:NAME STRING 来福WEIGHT STRING 200
Print,N_tags(Pig)
Print,Tag_names(Pig)
NAME WEIGHT
Print,Pig.TNAME
STRUCT
Print,Pig.TYPENAME
PELOSI 可以利用“结构体.属性”或“结构体.(Tag_Index)”来查看属性值。 注Tag_Index 是一个表达式其结果被视为一个标签位置具体某一个数,为了让 IDL 解析器理解这种情况您必须将 Tag_Index 括在括号中。 这不是数组索引操作因此在此上下文中不允许使用方括号 [ ]。
Pig Create_struct([name,weight,Country],来福,200,USA,NamePelosi)
Pig.name
来福
Pig.(0)
来福
Pig.(0:1)Pig.(0:1)^
% Syntax error.
Pig.(0,1)Pig.(0,1)^
% Syntax error.
2.2 修改结构体 结构体一旦被创建其属性成员变量的个数与类型将无法修改赋值操作时结构体属性成员变量会自动类型转化。
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pig
{NAME: 来福,WEIGHT: 200
}
Pig.NAME 老妖婆
Pig
{NAME: 老妖婆,WEIGHT: 200
Pig.NAME 9
Pig
{NAME: 9,WEIGHT: 200
}
Pig.NAME Indgen(2)
% Expression must be a scalar in this context: STRING Array[2].
% Execution halted at: $MAIN$ 分析上述代码中可以直接将原有的成员Name的值改为老妖婆但改为数字9的时候自动变成字符串形式改成数组类型的时候程序报错。
3.3 新增属性 可以利用函数create_struct()新增属性成员。
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pig2
{NAME: 来福,WEIGHT: 200,COUNTRY: USA 也可以利用结构体继承来新增属性成员。
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pig2 {Caiyingwen, inherits Pelosi}
Pig2
{NAME: ,WEIGHT: 0
}
Pig3 Pig
Pig3
{NAME: 来福,WEIGHT: 200 不同于等号直接赋值结构体“继承”只继承其属性成员为继承属性对应的值相当于只赋值了表格的表头。 可以在继承的基础上新增属性。
Pig Create_struct([name,weight],来福,200,NamePelosi)
Pig4 {Caiyingwen1, inherits Pelosi, Conntry:中国台湾省}
pig4
{NAME: ,WEIGHT: 0,CONNTRY: 中国台湾省
3.3 删除属性 水平有限暂时未想到好的方法待以后补充。
不足之处敬请斧正
路漫漫其修远兮吾将上下而求索