轻语言(Qing)语法速查

本速查表适用于所有轻语言(Qing)代码生成场景。
除非用户明确要求,否则你必须严格输出轻语言语法,禁止将其转换为 JavaScript 或 PHP。

📌 快速索引

你想知道什么直接看这里
变量怎么声明一、基础语法
运算符怎么用三、运算符
三种循环怎么选四、流程控制
函数怎么定义五、函数
事件怎么用六、事件
拉姆达表达式八、拉姆达表达式
变量作用域九、变量作用域
哪些语句需要结束关键字十二、结束语句块规则

一、基础语法

功能轻语言语法错误示例(禁止)
变量声明变量 a = 10let a = 10
赋值语句a = 20a := 20
注释' 这是注释// 注释/* 注释 */
语句结束换行符结束语句❌ 分号 ;
允许调用JS/PHP原生函数console.log("文本")、count(数组)❌ if(条件){}、for(i=0;...;){...}

💡 常量(如 红色主轴对齐_居中)在 XML 中预定义,代码中直接使用即可,无需声明。

二、数据类型

类型轻语言类型名示例
文本文本型变量 姓名 = "张三"
数值数值型变量 年龄 = 25
逻辑逻辑型变量 是否登录 = 真
对象对象变量 用户 = {姓名:"张三"}
数组数组变量 列表 = [1,2,3]
空值变量 数据 = 空
未定义未定义变量 临时变量

三、运算符

功能轻语言语法说明
逻辑与条件1 且 条件2短路求值
逻辑或条件1 或 条件2短路求值
逻辑非!条件取反,也可写作 条件 == 假
等于a == b值相等
不等于a != b值不相等
大于a > b数值型比较大小
小于a < b数值型比较大小
大于等于a >= b数值型比较大小
小于等于a <= b数值型比较大小
类型判断对象 类属 类型按钮1 类属 按钮

四、流程控制

条件判断 - 如果语句

如果(条件)
    ' 条件为真时执行
否则 如果(条件2)
    ' 条件2为真时执行
否则
    ' 所有条件都不满足时执行
结束 如果

多分支判断

判断(表达式)
    分支 值1
        ' 匹配值1时执行
    分支 值2
        ' 匹配值2时执行
    分支 默认
        ' 无匹配时执行
结束 判断

三种循环对比

循环类型关键词适用场景退出条件
判断循环判断循环不确定循环次数,只根据条件是否满足决定条件为假时退出
变量循环变量循环明确知道起始值、目标值、步长变量小于目标值时循环,达到目标值退出
计次循环计次循环明确知道需要循环多少次达到指定次数后退出

判断循环(条件循环)

先判断条件,条件为真时进入循环体,否则退出。

判断循环(条件)
    ' 循环体
结束循环

示例:

变量 计次 = 0
判断循环(计次 < 10)
    计次 = 计次 + 1
结束循环
调试输出(计次)  ' 输出 10

⚠️ 使用判断循环时,必须确保条件有机会变为假,否则会导致死循环。

变量循环(计数循环)

指定起始值、目标值和步长,变量小于目标值时循环,达到目标值退出(等效于 for(i=0; i<目标值; i+=步长))。

变量循环(计次 = 0, 10, 2)
    ' 循环体
结束循环

参数说明:

  • 参数一:起始值(从什么值开始)
  • 参数二:目标值(达到什么值退出)
  • 参数三:步长(每次递增的值)

计次循环(简化计数循环)

指定总循环次数,自动从 0 开始递增。

计次循环(总次数, 计次变量)
    ' 循环体
结束循环

示例:

变量 计次 = 0
计次循环(10, 计次)
    调试输出("计次:" + 计次)
结束循环

循环控制

关键字说明
退出立即退出整个循环
跳过跳过本次循环,继续执行下一次循环

💡 区别退出 是“结束整个循环”,跳过 是“不执行本次循环的剩余代码,但继续下一次循环”。调用 跳过 之前的代码仍然会执行。

五、函数

函数定义

函数 函数名(参数1, 参数2)
    ' 函数体
    返回 结果
结束 函数

函数调用

变量 结果 = 函数名(参数1, 参数2)

六、事件

事件有两种等价写法:

风格格式示例
VB6风格事件 组件.事件名(参数)事件 按钮1.被单击(源对象,事件源)
Java风格组件.置{事件名}回调((参数) => {})按钮1.置被单击回调((源对象,事件源) => {})

映射规则:被单击置被单击回调被双击置被双击回调

VB6风格示例

使用场景:仅支持 .spldg 设计文件中的组件使用,代码中创建的组件不支持。

事件 按钮1.被单击(源对象, 事件源)
    弹出提示("按钮被点击")
结束 事件

Java风格示例

使用场景:同时支持 .spldg 设计文件和代码创建的组件。

按钮1.置被单击回调((源对象, 事件源) => {
    弹出提示("按钮被点击")
})

七、对象与类

创建对象

变量 按钮1 = 创建 按钮()

设置属性

按钮1.文本 = "点击我"
按钮1.宽度 = 120

调用方法

按钮1.置被单击回调(回调函数)

八、拉姆达表达式

拉姆达表达式在轻语言中只能作为参数传递,不能赋值给变量。

正确用法

' 作为参数传递给组件方法
组件1.置被单击回调((参数1, 参数2) => {
    语句1
    语句2
})

错误用法(禁止)

' ❌ 不能赋值给变量
变量 回调 = (参数) => 表达式

' ❌ 不能作为变量初始值
变量 回调 = (参数) => {
    语句1
}

拉姆达表达式的任何语句体(包含单行语句)必须使用花括号 {} 包裹。

九、变量作用域

关键字作用域说明
变量块级作用域如果循环 等代码块内声明的变量,外部不可访问
域变量函数级作用域(建议避免使用)在代码块内声明的变量,外部也可访问,易造成命名冲突

💡 日常开发中应优先使用 变量,仅在特殊场景下使用 域变量

十、常用内置函数

分类函数名说明
字符串取文本长度(内容)获取文本字符数
字符串寻找文本(源, 目标)查找子文本位置
字符串分割文本(源, 分隔符)分割为数组
数组取数组成员数(数组)获取数组长度
数组添加成员(数组, 值)追加元素
数学取绝对值(值)取绝对值
数学取随机整数(最小, 最大)生成随机整数
时间取现行时间()获取当前时间字符串
对象取数据类型(值)获取值类型
JSONJSON解析(文本)解析JSON为对象
JSONJSON编码(对象)编码对象为JSON
存储保存配置(键, 值)保存到localStorage
存储读取配置(键)读取localStorage

💡 以上仅为常用函数,完整列表请参考 前端(JavaScript)函数 相关文档。

十一、语句块嵌套规则

轻语言支持语句块无限嵌套,但必须注意:

  1. 嵌套层次不宜过深:建议不超过 3-4 层,以免影响可读性
  2. 结束关键字匹配:每个开始关键字必须与其对应的结束关键字匹配,嵌套时注意层级对应

示例

如果(条件)
    ' 外层条件
    变量循环(计次 = 0, 10, 1)
        ' 内层循环
        如果(内层条件)
            ' 内层判断
        结束 如果
    结束循环
结束 如果

十二、结束语句块规则

在轻语言中,所有流程控制语句、函数、事件等代码块,必须使用对应的关键字显式标记结束位置

规则表

语句块类型开始关键字结束关键字示例
条件判断如果(条件)结束 如果如果(条件) ... 结束 如果
多分支判断判断(表达式)结束 判断判断(值) ... 结束 判断
计数循环变量循环(...)结束循环变量循环(...) ... 结束循环
简化计数循环计次循环(...)结束循环计次循环(...) ... 结束循环
条件循环判断循环(条件)结束循环判断循环(条件) ... 结束循环
函数定义函数 函数名(...)结束 函数函数 函数名(...) ... 结束 函数
事件定义事件 组件名.事件名(...)结束 事件事件 按钮1.被单击(...) ... 结束 事件

重要说明

  1. 所有控制语句都必须显式结束:轻语言不支持类似 C/Java 中使用花括号 {} 隐式界定代码块的方式。

  2. 结束关键字必须与开始关键字匹配

    • 如果结束 如果(不可写成 结束如果,中间必须有空格)
    • 函数结束 函数
    • 事件结束 事件
    • 判断结束 判断
    • 三种循环(变量循环计次循环判断循环)→ 统一使用 结束循环
  3. 结束循环 是三种循环的通用结束标记,无论使用哪种循环开始,都用 结束循环 收尾。

正确示例

' 如果语句
如果(条件)
    ' 执行代码
否则 如果(条件2)
    ' 执行代码
否则
    ' 执行代码
结束 如果

' 变量循环
变量循环(计次 = 0, 10, 1)
    ' 循环体
结束循环

' 函数定义
函数 计算(参数1, 参数2)
    变量 结果 = 参数1 + 参数2
    返回 结果
结束 函数

' 事件定义
事件 按钮1.被单击(源对象, 事件源)
    弹出提示("按钮被点击")
结束 事件

错误示例(禁止)

' ❌ 错误:缺少结束标记
如果(条件)
    ' 执行代码

' ❌ 错误:结束标记不匹配
函数 计算(参数)
    ' 函数体
结束 如果

' ❌ 错误:循环使用了错误的结束标记
变量循环(计次 = 0, 10, 1)
    ' 循环体
结束 变量循环

💡 规则总结:任何 如果函数事件定义判断 以及三种循环语句,都必须使用对应的结束关键字收尾。这是轻语言语法的基础规则,AI 在生成代码时必须严格遵守。

十三、其它重要规则

  1. 语句结束符:轻语言使用换行符作为语句结束符,不使用分号。
  2. 注释:使用 ' 开头(单引号+空格),不支持 ///* */
  3. 关键字:所有流程控制关键字均为中文(如 如果否则结束)。
  4. 事件回调置{事件名}回调 是固定命名规则,不可自由命名。
  5. 拉姆达:拉姆达待执行语句必须使用 {} 包裹代码块。
  6. 空值判断:使用 表示空对象,未定义 表示未初始化的变量。
  7. 类型判断:使用 对象 类属 类型 判断对象类型。

AI 使用指南

  1. 当用户要求编写轻语言代码时,必须严格遵循本速查表中的轻语言语法规则
  2. 禁止使用 JavaScript 或 PHP 的语句结构(如 if()for()function() {}returnclass 等英文关键字)。
  3. 允许调用 JavaScript 或 PHP 的原生内置函数(如 console.log()count()json_encode() 等),这些是运行时环境提供的功能,可以直接在轻语言代码中使用。
  4. 如果用户明确要求使用其他语言,则按用户要求执行,无需遵循本规则。

相关文档

  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、数组、对象、函数、拉姆达的详细用法
  • 文档轻语言网站:循环语句体结构 —— 三种循环的详细语法与边界语义
  • 文档轻语言网站:界面XML定义规范 —— .spldg XML 写法与组件属性
  • 文档轻语言网站:程序入口文件 —— App.spl 入口文件与 网站被访问 事件
  • 文档轻语言网站:工程项目结构 —— 项目目录与文件扩展名
  • 文档轻语言网站:发送网络请求与接口请求 —— 网络请求
  • 文档轻语言网站:服务端脚本程序API接口 —— .sph 后端脚本
  • 文档轻语言网站:与原生JS混合开发 —— 原生 JS 混合开发
  • 文档轻语言网站:静态资源文件的使用 —— 静态资源引用
  • 文档前端(JavaScript)函数_字符串 —— 字符串函数
  • 文档前端(JavaScript)函数_数组 —— 数组函数
  • 文档前端(JavaScript)函数_对象 —— 对象函数
  • 文档前端(JavaScript)函数_JSON —— JSON 函数
  • 文档前端(JavaScript)函数_存储 —— 保存配置/读取配置
  • 文档综合演示:网页留言板开发 —— 综合实战
  • 文档综合演示:XML 定义待办事项列表演示 —— 综合实战
  • 文档综合演示:贪吃蛇游戏开发演示 —— 综合实战