Use structurally equal values as Map vs IdentityMap keys
Use structurally equal values as Map vs IdentityMap keys
Section titled “Use structurally equal values as Map vs IdentityMap keys”Canonical source:
protos/examples/collections/path-keys.protosat locked revisione99b712ecf658a527b1fe82c8beba2c1286d8dc9.
This executable example is rendered from the exact Protos source consumed by the website. Its program body is copied without modification.
/* * THE LICENSED WORK IS PROVIDED UNDER THE TERMS OF THE ADAPTIVE PUBLIC LICENSE * ("LICENSE") AS FIRST COMPLETED BY: Guillermo Adrián Molina. ANY USE, PUBLIC * DISPLAY, PUBLIC PERFORMANCE, REPRODUCTION OR DISTRIBUTION OF, OR PREPARATION OF * DERIVATIVE WORKS BASED ON, THE LICENSED WORK CONSTITUTES RECIPIENT'S ACCEPTANCE * OF THIS LICENSE AND ITS TERMS, WHETHER OR NOT SUCH RECIPIENT READS THE TERMS OF * THE LICENSE. "LICENSED WORK" AND "RECIPIENT" ARE DEFINED IN THE LICENSE. A COPY * OF THE LICENSE IS LOCATED IN THE TEXT FILE ENTITLED "LICENSE.TXT" ACCOMPANYING * THE CONTENTS OF THIS FILE. */
// Equal Path values are one Map key but remain two IdentityMap keys.a: Path.relative().child("same")b: Path.relative().child("same")byValue: Map()byValue[a] = 10byValue[b] = 20byIdentity: IdentityMap()byIdentity[a] = 10byIdentity[b] = 20print(byValue.size())print(byIdentity.size())