Appearance
映射 mapping
Solidity
中的映射(mapping
)是用于关联键值对的一种数据结构。
类似于其他编程语言中的哈希表,可以将键映射到其对应的值。
语法
具体来说,映射是一个包含键和值的无序列表,每个键都关联到一个值。在 Solidity
中,映射的语法如下:
solidity
mapping (keyType => valueType) myMapping;
其中 keyType
是指映射中的键的数据类型, valueType
是指映射中对应的值的数据类型,myMapping
是映射的变量名。
例如,我们可以定义一个将字符串映射到整数的映射:
solidity
mapping (string => uint) myMap;
在 Solidity
中,映射可以用于多种场景,例如存储地址对应的余额、字符串对应的哈希值等等。
示例
下面是一个简单的 Solidity
智能合约,其中包含一个映射变量,并演示了如何使用映射来存储和访问数据:
solidity
pragma solidity ^0.8.0;
contract MyContract {
mapping (address => uint) public balances;
function deposit() public payable {
balances[msg.sender] += msg.value;
}
function getBalance(address _addr) public view returns (uint) {
return balances[_addr];
}
}
在该合约中,我们定义了一个名为 balances
的映射,它将每个地址映射到它们的余额。
deposit()
函数用于为合约中调用者的地址增加余额;getBalance()
函数用于返回给定地址的余额。