규칙 . 지도 차이
MapDiff 유형.
MapDiff 유형은 두 개의 rule.Map 객체를 비교한 결과를 나타냅니다.
diff 생성에 사용할 MapDiff 리터럴이 없습니다. MapDiff 객체는 rule.Map#diff 함수를 호출하여 반환됩니다.
아래 설명된 MapDiff 함수는 rule.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"]);
행동 양식
추가된 키
addedKeys()는 규칙을 반환합니다.설정
diff()
호출하는 Map에는 포함되어 있지만 diff()
에 전달된 Map에는 포함되지 않은 모든 키를 나열하는 rule.Set 을 반환합니다.
예
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
영향을 받은 키
영향을 받는Keys()는 규칙을 반환합니다.설정
diff()
diff()
를 호출하는 Map에 추가, 제거 또는 수정된 모든 키를 나열하는 rule.Set 을 반환합니다. 이 함수는 MapDiff.addedKeys()
, MapDiff.removedKeys()
및 MapDiff.changedKeys()
의 결합된 결과에 해당하는 집합을 반환합니다.
({"a":0, "c":0, "u":0}).diff({"r":0, "c":1, "u": 0}).affectedKeys() == ["a", "r", "c"].toSet()
변경된 키
변경된 키()는 규칙을 반환합니다.설정
diff()
호출하는 Map과 diff()
에 전달된 Map 모두에 나타나지만 값이 동일하지 않은 모든 키를 나열하는 rule.Set 을 반환합니다.
예
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
제거된 키
삭제된 키()는 규칙을 반환합니다.설정
diff()
에 전달된 Map과 비교하여 diff()
를 호출하는 Map에 포함되지 않은 모든 키를 나열하는 rule.Set 을 반환합니다.
예
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
변경되지 않은 키
변경되지 않은Keys()는 규칙을 반환합니다.설정
diff()
)를 호출하는 Map과 diff()
에 전달된 Map 모두에 나타나고 값이 동일한 모든 키를 나열하는 rule.Set 을 반환합니다.
예
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()