YStudio Y++

03 — 嵌套结构

Y++ / YStudio 开发文档 · 一点滴

一层嵌套

.yt

点 {
    整数 x = 0,
    整数 y = 0
}

线 {
    点 a,
    点 b
}

.yc(推荐逐字段)

函数 主窗口.创建完毕() {
    线 ln
    ln.a.x = 0
    ln.a.y = 0
    ln.b.x = 3
    ln.b.y = 4

    输出(到文本(ln.a.x)) // 0
    输出(到文本(ln.b.y)) // 4

    ln.a.x = 10
    ln.b.x = 30
    ln.b.y = 40
}

可选一行:线 ln = {{0, 0}, {3, 4}}(外层是线,内层各是一个点)。
不要写成 线 ln = [{0,0},{3,4}](那是数组写法)。

两层嵌套

点 {
    整数 x = 0,
    整数 y = 0
}

边 {
    点 起点,
    点 终点
}

三角形 {
    边 ab,
    边 bc,
    边 ca
}
函数 演示() {
    三角形 t
    t.ab.起点.x = 0
    t.ab.起点.y = 0
    t.ab.终点.x = 1
    t.ab.终点.y = 0
    t.bc.起点.x = 1
    t.bc.起点.y = 0
    t.bc.终点.x = 0
    t.bc.终点.y = 1
    t.ca.起点.x = 0
    t.ca.起点.y = 1
    t.ca.终点.x = 0
    t.ca.终点.y = 0

    输出(到文本(t.bc.终点.y)) // 1
    t.ab.起点.x = t.ab.起点.x + 2
}

深层只读:t.ab.终点.xt.ca.起点.y

混合内建 + 嵌套

标注点 {
    点 位置,
    文本 标题 = "",
    逻辑 可见 = 真
}
标注点 m
m.位置.x = 100
m.位置.y = 200
m.标题 = "出生点"
m.可见 = 假
输出(m.标题)
输出(到文本(m.位置.y))

分步组装后返回

函数 组装线(整数 x1, 整数 y1, 整数 x2, 整数 y2) 线 {
    线 r
    r.a.x = x1
    r.a.y = y1
    r.b.x = x2
    r.b.y = y2
    返回(r)
}

与数组组合

嵌套结构再放进数组,见 04-数组.md09-多层嵌套与下标链.md