我很好奇MapDiff方法是如何在嵌套对象上工作的
例如addedKeys
,用于仅顶层对象
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
就是这样工作的
但是嵌套对象呢?
{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == [????].toSet()
在affectedKeys
、changedKeys
、removedKeys
和unchangedKeys
上的行为是否相同?
好的,我使用rules.debug并找到了答案
在日志中,它打印
set_value {
values {
string_value: "a"
}
values {
string_value: "c"
}
}
所以基本上{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == ["a","c"].toSet()
它忽略嵌套属性