Skip to content

LingCpp 快速上手 ​

[🕒 预计 30 分钟] | 难度:入门

LingCpp 是 LingBuilder 面向中文开发者的编程语言:使用中文关键字编写代码,由 LingBuilder 确定性翻译为真实 C++ 源码并编译运行。

1. 语言结构 ​

一个最基本的 LingCpp 程序由「类」组成。窗口类通过「事件」响应用户动作;每个代码块以独立一行的 结束 收尾,整个类以 结束类 结束,层级靠缩进表达:

lcpp
类 我的主窗口
    事件 创建完毕()
        调试输出("Hello, LingBuilder!")
    结束
结束类

NOTE

新建项目时选择 你好 LingBuilder 模板即可得到这个结构。创建完毕 事件在窗口创建后自动执行,适合放初始化代码。

2. 数据类型 ​

lcpp
整数型 年龄 = 18
小数型 价格 = 19.99
文本型 名称 = "张三"
逻辑型 是否完成 = 真
类型说明示例
整数型32 位有符号整数整数型 年龄 = 18
长整数型64 位长整数长整数型 大数 = 1
小数型浮点数(双精度)小数型 价格 = 19.99
双精度小数型双精度浮点数双精度小数型 精确值 = 3.14
单精度小数型单精度浮点数(32 位,调用 DLL 的 float 参数时使用)单精度小数型 比例 = 0.5
逻辑型布尔值 真 / 假逻辑型 是否完成 = 真
文本型字符串文本型 名称 = "张三"

声明位置决定作用域:类内直接写 类型 名称 = 初值 声明成员变量;方法内部加 局部 前缀声明局部变量(前缀可省略);全局变量使用 全局 类型 名称 = 初值。

3. 条件与循环 ​

条件块以 如果结束 收尾:

lcpp
如果 (年龄 >= 18)
    调试输出("已成年")
否则
    调试输出("未成年")
如果结束

计次循环重复固定次数;第二个参数可选,用于接收当前次数(从 1 开始):

lcpp
局部 整数型 i = 0
计次循环首(5, i)
    调试输出("当前第 ", i, " 次")
计次循环尾

也可以使用条件循环 循环 (条件) … 循环结束,以及 判断循环首、变量循环首、枚举循环首 等其它循环形式。

4. 函数定义 ​

带 事件 前缀的是事件处理器,由用户动作触发;不带 事件 的方法是普通子程序,方法名前写返回值类型,用 返回 语句返回结果:

lcpp
类 我的程序
    事件 创建完毕()
        整数型 结果 = 加法(3, 4)
        调试输出("计算结果:", 结果)
    结束

    整数型 加法(整数型 a, 整数型 b)
        返回 a + b
    结束
结束类

5. 多行文本块 ​

内嵌 HTML、JSON、模板等大段文本时,用三引号文本块,内容原样输出,不需要任何转义:开始行以 """ 结尾,结束标记单独一行 """。

lcpp
空 准备主页HTML()
    局部 文本型 主页HTML
    主页HTML = """
<!DOCTYPE html>
<html lang="zh-CN">
<body><h1>你好,LingBuilder</h1></body>
</html>
"""
    HTTP_发送文本(请求, 主页HTML, "text/html; charset=utf-8", 200)
结束

NOTE

文本块目前只能写在赋值右部:先 局部 文本型 名称 声明,再单独一行 名称 = """ 开始(与「先声明后赋值」的常规写法一致)。块内出现 结束、如果 等文字不会影响程序结构,也不会被补全、重命名或格式化改写。

6. 与 C++ 的关系 ​

LingCpp 源码由 LingBuilder 确定性翻译为可读的真实 C++ 源码,再交给 Visual Studio / MSVC 编译运行;IDE 内运行结果与导出的 C++ 工程完全一致。

需要时也可以在 .lcpp 行首加 @ 直接嵌入原生 C++ 语句:

lcpp
事件 创建完毕()
    @ MessageBoxW(nullptr, L"直接嵌入的原生 C++", L"提示", MB_OK);
    调试输出("中文代码与 C++ 可以混用")
结束

TIP

括号使用中文 ( ) 或英文 ( ) 皆可;行尾分号可以省略。

下一步 ​