以下假定已定义:
点 {
整数 x,
整数 y
}
推荐写法:声明后逐字段赋值(不必用 {})
这是最直观的用法,和普通变量一样:
函数 主窗口.创建完毕() {
点 points
points.x = 10
points.y = 10
输出(到文本(points.x))
输出(到文本(points.y))
}
- 声明:
点 points(字段默认 0 / 空) - 赋值:
points.x = 10 - 取值:
points.x、points.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