首页 果壳精灵教程 当前文章

【新手入门】第 14 讲:自定义数据类型(结构体)

xLeaves(xxrpa) 发布于 2022年06月24日 13:52:57


计算机从被研发出来的第一天起,就是为了处理数据的,计算各种数据是它的强项,为了更好的计算数据,我们经常需要将数据抽象成我们能够理解的形态。

如果13亿人的各种数据集全都拥挤的放在一起,我们很难从中筛选出对我们有用的信息,因此,将数据巧妙的存储为便于理解的数据结构,就是让我们实现各种目标的一大利器。

自定义一个数据结构,这种数据结构,被称为【结构体】。


定义一个结构体,我们可以使用【Type】语句:

Type 数据类型名字
	整数 As Long
	小数 As Double
	文字 As String
End Type

定义一个结构体,总是从 Type 开始的,后面跟着你希望这个结构体数据类型叫什么名字,有了这个名字,我们就可以定义这种结构化数据的变量了。

然后在结构体中,我们可以定义若干个变量,在这里定义变量不再需要 Dim 语句了,直接 【变量名 As 数据类型】 即可,结构体内可以定义任何类型的变量,甚至再包含一个结构体。

例如我们希望定义一个坐标类型的数据,可以这样:

Type 坐标
	x As Long
	y As Long
End Type

然后我们可以定义一个【坐标】类型的变量:

Type 坐标
	x As Long
	y As Long
End Type

Function Main() As Long
	Dim a As 坐标
	a.x = 123
	a.y = 456
	TracePrint "坐标为:" & a.x & ", " & a.y
End Function

非常简单吧!现在让我们定义一个人体的数据,并填充它:

Type 坐标
	经度 As Double
	纬度 As Double
End Type

Type 人
	姓名 As String
	性别 As Boolean
	身高 As Long
	体重 As Long
	身份证号 As String
	跟踪位置 As 坐标
End Type

Function Main() As Long
	Dim sx As 人
	sx.姓名 = "小船"
	sx.性别 = false		' 定义男为 true,女为 false
	sx.身高 = 149		' 单位为 cm
	sx.体重 = 200		' 单位为 KG
	sx.身份证号 = "123456190001010123"
	sx.跟踪位置.经度 = 0.123
	sx.跟踪位置.纬度 = 0.456
End Function

这样我们就能设置和读取一个与人相关的一系列数据了,是不是非常简单呢?

很多场合我们都能把数据整理归纳为这样的数据结构,对数据结构直接进行操作会让代码更加清晰。


结构体也是可以有函数的,这种函数一般被称为【成员函数】。

就好比一个人,除了有身高、体重、性别等数据,还可以进行各种操作,例如:重拳出击、碾碎他们、进入钢琴大师模式等……

定义成员函数的方法很简单,只需要在【Type】和【End Type】之间写函数代码就可以了:

Type 坐标
	经度 As Double
	纬度 As Double
End Type

Type 人
	姓名 As String
	性别 As Boolean
	身高 As Long
	体重 As Long
	身份证号 As String
	跟踪位置 As 坐标
	
	Function 初始化数据(ByVal sName As String) As Long
		Me.姓名 = sName
		Me.性别 = false		' 定义男为 true,女为 false
		Me.身高 = 149		' 单位为 cm
		Me.体重 = 200		' 单位为 KG
		Me.身份证号 = "123456190001010123"
		Me.跟踪位置.经度 = 0.123
		Me.跟踪位置.纬度 = 0.456
	End Function
End Type

Function Main() As Long
	Dim sx As 人
	sx.初始化数据("小船")
	TracePrint sx.姓名
	TracePrint sx.身份证号
End Function

成员函数和普通的函数差不多,但只能通过结构体对象来调用,在成员函数内,可以使用 Me 关键字访问结构体的变量和其他成员函数。


若无特殊声明,上述内容为本站原创,未经授权禁止转载!