規則。地圖差異
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()