JavaFX 数据同步与用户界面创建全解析
1. 绑定函数(Bound Functions)
在 JavaFX 中,绑定函数是一个重要的概念。绑定函数与普通函数在绑定表达式中,若参数发生变化,都会重新计算。但它们在函数体内部变化的处理上有所不同。
普通函数绑定将函数体视为黑盒,函数体内部的变化不会导致函数重新调用;而绑定函数能检测到参数和函数体内部的变化并重新调用。
以下是一个具体示例:
class Cell {
public var row : Integer;
public var col : Integer;
}
var translate = 0;
function moveToUnBound(r : Integer, c : Integer) : Cell {
return Cell {
row: r + translate;
col: c + translate;
}
}
bound function moveToBound(r : Integer, c : Integer)
: Cell {
return Cell {
row: r + translate;
col: c + translate;
}
}
var r = 0;
var c = 0;
var cell1 = bind moveToUnBound(r, c);
var cell2 = bind moveToBound(r, c);
println("cell1: row={cell1.row}, col={c