August 2019
Intermediate to advanced
486 pages
13h 52m
English
You can declare a mapping in Solidity using:
mapping(KEY_TYPE => VALUE_TYPE)
The KEY_TYPE cannot be a mapping, a dynamically sized array, a contract, enum, or struct. The remaining data types can be used for KEY_TYPE. The VALUE_TYPE can be any type; even a mapping is allowed.
The data used for KEY_TYPE is not stored in a mapping—its keccak256 hash is generated and persisted, which in turn used to look up the value. Mappings do not have a length member to know their current size; hence, you cannot iterate a mapping.
For the mappings whose visibility is public, Solidity creates a getter function automatically. The KEY_TYPE will become a required parameter for the getter function, and it will return VALUE_TYPE ...