clojure.lang.PersistentHashMap.LeafNode.assoc C# (CSharp) Метод

assoc() публичный Метод

public assoc ( int shift, int hash, object key, object val, clojure.lang.Box addedLeaf ) : INode
shift int
hash int
key object
val object
addedLeaf clojure.lang.Box
Результат INode
            public INode assoc(int shift, int hash, object key, object val, Box addedLeaf)
            {
                if (hash == _hash)
                {
                    if (Util.equals(key, _key))
                    {
                        if (val == _val)
                            return this;
                        // note - do not set AddedLeaf, since we are replacing
                        else
                            return new LeafNode(hash, key, val);
                    }
                    else
                    {
                        // hash collision, same hash, different keys
                        LeafNode newLeaf = new LeafNode(hash, key, val);
                        addedLeaf.Val = newLeaf;
                        return new HashCollisionNode(hash, this, newLeaf);
                    }
                }
                else
                    return BitmapIndexedNode.create(shift, this, hash, key, val, addedLeaf);
            }