MushScript 参考手册
这是一份关于 MushScript 的参考手册:每一页都是一个特性单元,按照主题组织,不承担入门教学的功能。如果是从零开始学习的读者,应阅读相应的入门教程。
MushScript 是一门静态类型的脚本语言。它的几个核心特性:
- 默认不可变:
val是默认,var是例外。 - null 是类型的一部分:「可能为空」必须写进类型,编译期严格处理。
- 内建向量与颜色:
vec2/vec3/vec4/color七型一族,swizzle 直接取分量。 - 组合与继承并存:类沿单继承链派生,横向能力用协议、混入与扩展显式组合。
- 错误是值:失败不用异常表达,而是类型签名的一部分。
本手册范围
本手册描述的是脚本版 MushScript,脚本版的语法是原生版的子集。本手册所述的语法与语义在原生版下大部分成立,但原生版多出来的部分不在本手册范围内。
术语约定
术语采用中文(英文)的写法,如类(Class)、特性(Attribute)。语言关键字与 API 名称保持英文原样,写在代码块里。
各部分
起步这一部分主要介绍运行环境以及快速的语法参考。
基础值(Values)这一部分覆盖语言里的全部基础值:三种变量绑定、整数与两种小数家族、布尔与字符、字符串及其插值、时间值、向量与颜色,以及显式类型转换。每一种值都给出字面量写法、可运行示例与边界行为。
运算与控制流这一部分覆盖语言的表达式与语句,包括运算符与优先级、条件与匹配、循环、模式等内容。
函数这一部分覆盖了函数的完整声明面,包括参数修饰、默认参数、命名实参、变参与展开、重载、泛型约束等内容。
容器与文本这一部分覆盖语言的容器族与文本处理,包括列表、集合、映射等内容。
类型这一部分包括了自定义类型的完整版图,包括了可空类型、结构体、类、元组、属性、枚举等内容。
组织代码这一部分主要介绍代码怎么组织与共享,包括模块、包、导入等内容。
事件与响应这一部分覆盖事件系统与响应式功能,包括事件、订阅、事件管线等内容。
异步MushScript 的异步是单线程交错的挂起/恢复状态机。没有线程,交错点全由 await 显式标出。
进阶这一部分介绍语言的进阶面:包括 @Test 测试与断言、虚拟时钟、生成器、运行期反射等等。
最后更新于 2026年10月11日
