下标一律从 1 开始。示例用语:部门 / 成员 / 坐标 / 单据。
能力矩阵
| 写法 | 支持 | 说明 |
|---|---|---|
线.a.x |
是 | 纯结构嵌套 |
线表[1].a.x |
是 | 数组 + 嵌套字段 |
部门.成员[1].x |
是 | 字段数组 + 下标 |
部门表[1].成员[2].x |
是 | 外层数组 + 字段数组 + 字段 |
点[] arr |
否 | 必须 点 arr[] |
点[] 成员(字段) |
否 | 必须 点 成员[] |
类型定义
点 {
整数 x = 0,
整数 y = 0
}
部门 {
文本 名称 = "未命名",
点 成员[]
}
地址 {
文本 省 = "",
文本 市 = ""
}
客户 {
文本 名称 = "",
地址 住址
}
单据 {
文本 单号 = "",
客户 买方
}
示例 A:单对象字段数组
函数 演示A() {
部门 d
d.名称 = "研发"
d.成员 = [{10, 20}, {30, 40}]
输出(到文本(d.成员[1].x)) // 10
d.成员[2].y = 99
输出(到文本(d.成员[2].y)) // 99
}
链:d.成员[1].x
示例 B:对象数组再进字段数组(重点)
对应:xx[1].xx成员[1].xxx
函数 演示B() {
部门 表[] = [
{"甲组", [{1, 2}, {3, 4}]},
{"乙组", [{5, 6}]}
]
// 表[1] → 第一组;成员[2] → 该组第二个点
输出(到文本(表[1].成员[2].x)) // 3
输出(表[1].名称) // 甲组
表[2].成员[1].x = 100
表[2].成员[1].y = 60
输出(到文本(表[2].成员[1].y)) // 60
// 中间量(可选)
点 p = 表[1].成员[1]
输出(到文本(p.y)) // 2
}
示例 C:三层纯结构(无字段数组)
函数 演示C() {
单据 o
o.单号 = "D001"
o.买方.名称 = "张三"
o.买方.住址.省 = "浙江"
o.买方.住址.市 = "杭州"
输出(o.买方.住址.市) // 杭州
}
链:o.买方.住址.市
示例 D:线数组 + 深层字段
线 {
点 a,
点 b
}
函数 演示D() {
线 表[] = [{{0, 0}, {1, 1}}, {{2, 2}, {3, 3}}]
输出(到文本(表[2].b.x)) // 3
表[1].a.y = 8
}
链:表[2].b.x
示例 E:部门表再读名称与坐标
函数 演示E() {
部门 表[] = [
{"一车间", [{0, 0}, {1, 0}, {1, 1}]},
{"二车间", [{2, 2}]}
]
整数 i = 1
// 读第一组全部成员的 x(循环语法以你工程为准)
输出(到文本(表[1].成员[1].x))
输出(到文本(表[1].成员[2].x))
输出(到文本(表[1].成员[3].x))
输出(表[2].名称)
}
写法硬规则
类型 名[]/类型 字段[],禁止写成类型[] 名- 下标从 1
- 结构
{},数组[]:部门 d = {"名", [{1,2}]} - 链顺序:
容器[下标].字段数组[下标].标量 - 值语义:
点 p = 表[1].成员[1]是副本 - 优先逐字段赋值;默认值写在
.yt标量字段上