数据类型手册
[🕒 预计 20 分钟] | 难度:入门
本节介绍 LingCpp 中常用数据类型的声明与使用要点。LingCpp 的类型名以"型"结尾,与类易语言的习惯保持一致。
1. 基本类型
| 类型 | 描述 | 默认值 |
|---|---|---|
整数型 | 32 位有符号整数 | 0 |
长整数型 | 64 位有符号整数 | 0 |
小数型 | 双精度浮点数 | 0.0 |
双精度小数型 | 双精度浮点数(显式全称写法) | 0.0 |
文本型 | 字符串 | "" |
逻辑型 | 布尔值,取值为 真 / 假 | 假 |
字节集 | 二进制字节序列 | — |
日期时间型 | 日期时间 | — |
2. 声明与赋值
lcpp
整数型 数量 = 10
小数型 单价 = 3.5
文本型 名称 = "LingBuilder"
逻辑型 已完成 = 假用 + 拼接文本与其他类型时,LingCpp 会自动做文本转换:
lcpp
整数型 计数值 = 5
文本型 结果文本 = "计数:" + 计数值 // "计数:5"3. 类型转换
类型之间的转换通过模块命令完成,例如 JSON 模块提供的取值命令可以把 JSON 数据安全地转换为整数、文本、小数等类型;网络模块的响应内容也通过 HTTP客户端_取响应文本 等命令取得后按文本处理。
编写转换代码时请注意:
- 从外部数据(JSON、HTTP 响应、文件)读取数值前,先用
JSON_是否数字、JSON_取类型等命令确认实际类型,避免无效转换。 - 文本比较使用
==,判断空文本使用如果 (名称 == "")。
4. 集合数据
界面中的集合数据通常由控件承载:
- 列表框 / 组合框 / 列表视图 通过
项目集合属性和对应命令维护条目; - 数据表格 通过
列配置与初始数据组织行列; - 大批量数据处理请把整批数据作为参数交给多线程模块的后台任务(如
线程_提交进度(&工作, &进度, &完成, 记录数组)),界面只在进度与完成处理器里刷新,避免在事件中逐条高频更新。
纯数据数组(文本型[]、整数型[]、记录数组等)的增删改查由内置的数组操作模块提供,见下一节。
5. 数组操作模块
内置 数组操作模块(lingbuilder.std.array)为各类数组提供成员数、增删改查、排序和重定义能力。命令对元素类型透明,索引统一从 0 开始,越界一律安全返回失败值而不崩溃。
| 命令 | 说明 |
|---|---|
数组_取成员数(数组) | 返回数组当前成员数量 |
数组_是否为空(数组) | 判断数组是否没有任何成员 |
数组_取成员(数组, 索引) | 按 0 起始索引读取成员,越界返回元素类型默认值 |
数组_置成员(数组, 索引, 值) | 覆盖指定索引的成员,越界返回假 |
数组_加入成员(数组, 值) | 在末尾追加成员,返回追加后的成员数 |
数组_插入成员(数组, 索引, 值) | 在指定索引之前插入成员 |
数组_删除成员(数组, 索引) | 删除指定索引成员,后续成员依次前移 |
数组_清空(数组) | 删除全部成员 |
数组_查找(数组, 值) | 返回首个相等成员的索引,未找到返回 -1 |
数组_是否包含(数组, 值) | 判断是否包含相等成员 |
数组_排序(数组, 升序) | 按元素自身顺序稳定排序 |
数组_倒序(数组) | 把成员按当前顺序整体反转 |
数组_重定义(数组, 新成员数) | 调整成员数:变小截断,变大用默认值补齐 |
数组变量声明时在名称后加 [](参数表也可写成 类型[] 参数名),遍历使用 枚举循环首:
lcpp
局部 文本型 名单[]
数组_加入成员(名单, "张三")
数组_加入成员(名单, "李四")
枚举循环首 (名单, 当前项)
调试输出(当前项)
枚举循环尾 ()
调试输出("成员数", 数组_取成员数(名单))NOTE
记录类型数组(见下一节)默认不带比较运算,数组_查找 / 数组_是否包含 / 数组_排序 对记录数组会稳定返回失败值,而不是编译失败。
6. 项目自定义数据类型
在项目树的 项目数据类型.lcpp 中定义项目级自定义数据类型,构建时确定性生成真实 C++ struct:
lcpp
数据类型 联系人
文本型 姓名 = ""
整数型 年龄 = 0
文本型[] 电话列表
结束数据类型使用规则:
- 项目自定义数据类型只能声明在
项目数据类型.lcpp中;该文件不能声明窗口类、项目常量或项目全局变量。 - 字段写成
类型 字段名;字段名后追加[]表示数组字段,= 默认值指定字面量默认值。 - 字段可用类型:
文本型、整数型、长整数型、逻辑型、小数型、双精度小数型、字节型、字节集,以及其他已定义的项目自定义数据类型(嵌套)。 - 数组、字节集和嵌套对象字段只能使用默认空初始化;类型之间禁止循环嵌套,诊断会标出循环链。
- 在窗口代码中声明变量并用
.访问成员:
lcpp
局部 联系人 临时联系人
临时联系人.姓名 = "小林"
临时联系人.年龄 = 287. 常见陷阱
- 类型名要写全:是
整数型而不是整数,是文本型而不是文本。 逻辑型只有真和假两个取值。- 控件引用参数必须传入设计器中的裸控件名(不加引号),详见 窗口设计器。
- 在界面事件中执行耗时操作会阻塞界面,长任务应交给多线程模块。
下一步
- 学习完整语法:LingCpp 快速上手
- 实践控件编程:窗口设计器