80 集合变更通知
对集合字段的订阅能以旧值/新值快照观察原位 List 变更。关闭订阅只停止通知,不阻止后续列表修改。
norm
import std.observation.onChange
class Tasks { List<String> titles = [] }
main() {
Tasks tasks = Tasks()
var subscription = tasks.titles.onChange {
printLine("${oldValue.size()} -> ${newValue.size()}")
}
tasks.titles.add("Learn")
tasks.titles.add("Build")
subscription.close()
tasks.titles.add("Publish")
printLine(tasks.titles.size())
}预期输出:
text
0 -> 1
1 -> 2
3动手试试:把列表替换为内容相同的新列表,观察是否触发通知。
精确规则:参考。