程序集
在轻语言中,除了一个文件定义一个类外,还支持通过程序集文件定义多个类,在轻语言中程序集文件的后缀为:.ass ,源自英文 assembly 的缩写,程序集的主要作用是聚合类的定义,在一个程序集文件中,可以定义多个类,接口,结构体。其核心目的是可以把「功能相关的多个类」放在同一个文件里,减少文件数量,提升代码的可读性和管理效率(比如把「动物相关的猫头鹰、大熊猫类」都放在 动物类.ass 里)。
代码示例
在 人员类.ass 程序集文件中定义多个和人员有关的数据类型。
' 定义“人员”类,是所有其它人员类型的基础类型,含有姓名,年龄属性
定义 人员 为 类型
变量 姓名 为 文本型
变量 年龄 为 整数型
结束 定义
定义 学生 继承 人员
变量 年级 为 整数型
变量 班级 为 整数型
变量 班主任 为 文本型
函数 学生()
结束 函数
函数 学生(参_姓名 为 文本型,参_年龄 为 整数型,参_年级 为 整数型,参_班级 为 整数型)
姓名 = 参_姓名
年龄 = 参_年龄
年级 = 参_年级
班级 = 参_班级
结束 函数
函数 取学生信息() 为 文本型
返回 $"姓名:{姓名},班级:{班级},年龄:{年龄}"
结束 函数
结束 定义
定义 教师 继承 人员
变量 教学科目 为 文本型
变量 教学成果 为 文本型
' 0普通教师,1高等教师
变量 教师职称 为 整数型
函数 教师(参_姓名 为 文本型)
姓名 = 参_姓名
结束 函数
函数 教学()
弹出提示("教师:" + 姓名 + " 正在教学!" )
结束 函数
结束 定义
与文件类.spc的区别
-
继承与实现
- 在文件类中,通过
@继承,@实现关键字指定父类和要实现的接口,而在程序集中定义的类型,需要使用继承,实现关键字指定。
- 在文件类中,通过
-
匿名接口对象
- 在文件类中可以定义匿名接口对象,使用
定义关键字定义的类不行。
- 在文件类中可以定义匿名接口对象,使用
-
定义方式
- 文件类的类名等于文件名,一个文件就是一个类,而在程序集中使用
定义关键字可以定义多个类。
- 文件类的类名等于文件名,一个文件就是一个类,而在程序集中使用
编译区别
以安卓以视窗为例, .spc .spl 作为后缀的文件类,编译输出为独立的 .java 文件,一个文件表示一个类。在程序集 .ass 中定义的类,每个类都是独立的,编译输出为独立的 .java 文件,例如:在一个程序集文件中,分别定义了 学生,教师 类,在编译时会分别输出为 学生.java 、 教师.java 两个类文件。