点 {
整数 x = 0,
整数 y = 0
}
线 {
点 a,
点 b
}
参数 + 返回
函数 加(点 a, 点 b) 点 {
点 r
r.x = a.x + b.x
r.y = a.y + b.y
返回(r)
}
函数 主窗口.创建完毕() {
点 p1
p1.x = 10
p1.y = 20
点 p2
p2.x = 1
p2.y = 2
点 p = 加(p1, p2)
输出(到文本(p.x)) // 11
}
也可:点 p = 加({10, 20}, {1, 2})。
只读参数字段
函数 曼哈顿距离(点 a, 点 b) 整数 {
整数 dx = a.x - b.x
整数 dy = a.y - b.y
如果 (dx < 0)
dx = 0 - dx
如果 (dy < 0)
dy = 0 - dy
返回(dx + dy)
}
返回嵌套类型
函数 水平线(整数 y, 整数 x1, 整数 x2) 线 {
线 ln
ln.a.x = x1
ln.a.y = y
ln.b.x = x2
ln.b.y = y
返回(ln)
}
函数 演示() {
线 ln = 水平线(5, 0, 10)
输出(到文本(ln.b.x)) // 10
}
值语义:改参数不影响实参
函数 平移(点 p, 整数 dx, 整数 dy) 点 {
p.x = p.x + dx
p.y = p.y + dy
返回(p)
}
函数 演示() {
点 a
a.x = 1
a.y = 1
点 b = 平移(a, 3, 4)
输出(到文本(a.x)) // 1
输出(到文本(b.x)) // 4
}
数组元素作实参
函数 打印x(点 p) {
输出(到文本(p.x))
}
函数 演示() {
点 arr[] = [{3, 4}, {5, 6}]
打印x(arr[1])
打印x(arr[2])
}
调用结果取字段
点 t = 加({1, 2}, {3, 4})
输出(到文本(t.x))
(若版本支持调用结果直接 . 字段也可;稳妥写法是先赋给临时变量。)