ethereumsoliditysmartcontracts

Solidity setting a mapping to empty


I am trying to create a smart contract using Solidity 0.4.4.

I was wondering if there is a way to set a mapping with some values already entered to an empty one?

For example:

This initailises a new mappping

mapping (uint => uint) map;

Here I add some values

map[0] = 1;

map[1] = 2;

How can I set the map back to empty without iterating through all the keys?

I have tried delete but my contract does not compile


Solution

  • Unfortunately, you can't. See the Solidity documentation for details on the reasons why. Your only option is to iterate through the keys.

    If you don't know your set of keys ahead of time, you'll have to keep the keys in a separate array inside your contract.