rules. MapDiff
MapDiff 类型。
MapDiff 类型表示将两个 rules.Map 对象中。
没有可用于创建差异的 MapDiff 字面量。MapDiff 对象 调用 rules.Map#diff 函数。
下文所述的 MapDiff 函数是通过将 rules.Map#diff。所有 MapDiff 函数均返回 rules.Set 对象,其中列出了地图对象之间比较的键。
// 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"]);
方法
addedKeys
addedKeys() 会返回 rules.Set
返回 rules.Set,其中会列出映射调用的所有键
diff()
包含传递给 diff()
的 Map
错误。
示例
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
受影响的键
受影响的 Keys() 会返回 rules.Set
返回 rules.Set,其中会列出已添加到、
从地图调用 diff()
中移除或修改了
传递给 diff()
的地图。此函数用于返回
相当于 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
changedKeys() 会返回 rules.Set
返回 rules.Set,它会列出在映射中同时出现的所有键
调用 diff()
以及传递到 diff()
的 Map 类,但是
不相等的值。
示例
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
已移除键
removedKeys() 会返回 rules.Set
返回 rules.Set,其中会列出映射调用的所有键
与传递到的映射相比,diff()
不包含
diff()
。
示例
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
未更改的键
未更改的 Keys() 会返回 rules.Set
返回 rules.Set,它会列出在映射中同时出现的所有键
调用 diff()
和传递给 diff()
的 Map,以及
它们的值相等。
示例
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()