自定义类型是值语义结构体(拷贝整份数据),与扩展句柄类(HTTP类 / 对象类 等)不同。
怎么新建
- 工程树 → 源代码 → 右键 → 新建自定义类型文件
- 输入名称(可省略
.yt) - 文件里只写类型定义
保存后,工程内任意 .yc 自动可用,无需导入。
.yt 定义(可带默认值)
点 {
整数 x = 0,
整数 y = 0
}
矩形 {
整数 top = 0,
整数 left,
整数 right,
整数 bottom = 100
}
部门 {
文本 名称 = "未命名",
点 成员[]
}
.yc 推荐用法(不必写 {})
点 points
points.x = 10
points.y = 20
输出(到文本(points.x))
矩形 r // top=0,bottom=100
r.left = 5
r.right = 200
点 p = {10, 20} 仍可用,只是可选的一行初始化。
数组与多层嵌套(摘要)
' 数组:类型名 变量名[](不是 类型名[] 变量名)
点 arr[] = [{1, 2}, {5, 6}]
arr[1].x = 11 // 下标从 1 开始
' 外层数组 + 字段数组 + 字段
部门 表[] = [
{"甲组", [{1, 2}, {3, 4}]},
{"乙组", [{5, 6}]}
]
输出(到文本(表[1].成员[2].x)) // 3
表[2].成员[1].y = 60
' 三层纯结构嵌套
单据 o
o.买方.住址.市 = "杭州"
' 自定义类型名也可叫 myfunc
myfunc demo[] = [{1, "甲", {10, 20}}, {2, "乙", {30, 40}}]
输出(到文本(demo[2].坐标.x)) // 30
声明必须是 点 arr[] 或 点 结构体 arr[],不是 点[] arr。
字段数组:点 成员[]。结构用 {},数组用 []。
规则速查
| 规则 | 说明 |
|---|---|
| 文件内容 | .yt 只放类型,不写函数/变量 |
| 默认值 | 标量可写 整数 x = 10;数组字段/嵌套类型字段暂不支持默认值 |
| 分隔 | , / , / 换行 |
| 自引用 | 禁止 节点 { 节点 下一 } |
| 下标 | 从 1 开始 |
| 值语义 | 赋值是拷贝;函数改参数不影响实参 |
详细文档
详解:examples/usertype/(01~09,含多层嵌套与数组)