规则。地图差异
MapDiff 类型。
MapDiff 类型表示比较两个规则的结果。Map 对象。
没有可用于创建差异的 MapDiff 文字。 MapDiff 对象是通过调用rules.Map#diff函数返回的。
下面描述的 MapDiff 函数是通过与Rules.Map#diff链接来调用的。所有 MapDiff 函数都返回规则。设置列出 Map 对象之间比较的键的对象。
// Compare two Map objects and return whether the key "a" has been // affected; that is, key "a" was added or removed, or its value was updated. request.resource.data.diff(resource.data).affectedKeys().hasOnly(["a"]);
方法
添加的键
addKeys() 返回规则.Set
返回一个Rules.Set ,其中列出了调用diff()
的 Map 包含但传递给diff()
的 Map 不包含的所有键。
例子
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
受影响的键
affectedKeys()返回rules.Set
返回一个规则集,其中列出了与传递给diff()
Map 相比,调用diff()
的 Map 添加、删除或修改的所有键。此函数返回相当于MapDiff.addedKeys()
、 MapDiff.removedKeys()
和MapDiff.changedKeys()
的组合结果的集合。
({"a":0, "c":0, "u":0}).diff({"r":0, "c":1, "u": 0}).affectedKeys() == ["a", "r", "c"].toSet()
改变的键
changedKeys()返回rules.Set
返回一个Rules.Set ,它列出了调用diff()
的 Map 和传递给diff()
Map 中出现的所有键,但其值不相等。
例子
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
删除的键
removedKeys()返回rules.Set
返回一个rules.Set ,其中列出了与传递给diff()
Map相比,调用diff()
的Map不包含的所有键。
例子
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
未更改的键
未更改的Keys()返回rules.Set
返回一个Rules.Set ,它列出了调用diff()
的 Map 和传递给diff()
Map 中出现的所有键,并且其值相等。
例子
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()