YStudio Y++

02 — 初始化与赋值

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

以下假定已定义:

点 {
    整数 x,
    整数 y
}

推荐写法:声明后逐字段赋值(不必用 {}

这是最直观的用法,和普通变量一样:

函数 主窗口.创建完毕() {
    点 points
    points.x = 10
    points.y = 10
    输出(到文本(points.x))
    输出(到文本(points.y))
}
  • 声明:点 points(字段默认 0 / 空)
  • 赋值:points.x = 10
  • 取值:points.xpoints.y

不需要点 points = {10, 10},除非你想一行写完初值。

可选:聚合初始化 {}(糖衣,非必须)

点 p = {10, 20}          // 等价于先声明再 p.x=10; p.y=20

字段按定义顺序对应;多了会报错。日常更推荐上面的逐字段写法。

从另一变量拷贝(值语义)

点 a
a.x = 1
a.y = 2
点 b = a          // b 是 a 的副本
b.x = 100
输出(到文本(a.x)) // 仍是 1
输出(到文本(b.x)) // 100

字段参与运算

点 a
a.x = 3
a.y = 4
点 b
b.x = 5
b.y = 6
点 c
c.x = a.x + b.x
c.y = a.y + b.y
输出(到文本(c.x) + "," + 到文本(c.y)) // 8,10

局部变量 + 模块级变量

点 全局原点

函数 主窗口.创建完毕() {
    全局原点.x = 0
    全局原点.y = 0
    点 局部 = 全局原点
    局部.x = 局部.x + 1
    输出(到文本(全局原点.x)) // 0,值拷贝
}

与内建类型对照

整数 i = 1
文本 s = "hi"
点 p                 // 自定义类型:先声明
p.x = 1              // 再写字段
p.y = 2