结构体

结构体是一种自定义的数据类型,通常用于封装一组相关的数据字段为一个整体。例如编程中常见的坐标结构,一个坐标点包含一个XY值,通过结构体的封装,可以将XY封装成一个坐标结构体数据类型。

定义结构体

一个合法的自定义结构类型使用“定义”关键字定义、其结构体中只能包含内部成员变量、成员变量个数无限制、但不能包含构造函数、自定义函数、事件或回调对象;同时内部成员变量不能使用任何修饰符;语法如下:

定义 结构体名称 为 结构
    变量 成员变量1 为 数据类型
    变量 成员变量2 为 数据类型
    ...
结束 定义

注:结构体中不支持一个变量语句定义多个成员变量、即每行只能定义一个变量成员。

示例:

定义 坐标 为 结构
    变量 X 为 整数型
    变量 Y 为 整数型
结束 定义

使用结构体

视窗程序示例:

' 先定义描述坐标的结构体数据类型
定义 坐标 为 结构
    变量 X 为 整数型
    变量 Y 为 整数型
结束 定义

事件 按钮4.被单击(来源对象 为 对象,事件对象 为 鼠标事件)
    ' 声明并创建一个坐标变量对象
    变量 坐标1 = 创建 坐标()
    坐标1.X = 10
    坐标1.Y = 20
    调试输出("坐标1 X:" + 坐标1.X + ",Y:" + 坐标1.Y)
    ' 声明并创建坐标、设置初始值,结构体数据默认支持全成员构造函数
    变量 坐标2 = 创建 坐标(30,50)
    ' 由于 坐标2 已经是一个包含X,Y值的整体数据值对象;因此可以添加到集合
    ' 或放到数组中、或设置给组件的标记、或跨窗口传递
    标签1.标记 = 坐标2
结束 事件

事件 按钮5.被单击(来源对象 为 对象,事件对象 为 鼠标事件)
    ' 取出 标签1 的标记(上一步设置的 坐标2)
    变量 坐标2 = (坐标)标签1.标记
    调试输出("坐标2 X:" + 坐标2.X + ",Y:" + 坐标2.Y)
结束 事件

注:每个结构体数据都为全局数据类型、在整个项目中的模块、窗口中都可以使用、因此整个项目中不能包含相同名称的结构体。

在实际项目中,建议在专门的文件中声明结构体,轻语言默认存放结构体类型文件的后缀为:.st ,建议将项目中的所有自定义数据结构放在该文件中声明。