Solidity - 映射
映射是数组和结构体的引用类型。 以下是声明映射类型的语法。
mapping(_KeyType => _ValueType)
其中
_KeyType − 可以是任何内置类型加上字节和字符串。 不允许引用类型或复杂对象。
_ValueType − 可以是任何类型。
注意事项
映射只能有存储类型,一般用于状态变量。
映射可以标记为公开。 Solidity 会自动为其创建 getter。
示例
尝试以下代码来了解映射类型在 Solidity 中的工作原理。
pragma solidity ^0.5.0;
contract LedgerBalance {
mapping(address => uint) public balances;
function updateBalance(uint newBalance) public {
balances[msg.sender] = newBalance;
}
}
contract Updater {
function updateBalance() public returns (uint) {
LedgerBalance ledgerBalance = new LedgerBalance();
ledgerBalance.updateBalance(10);
return ledgerBalance.balances(address(this));
}
}
使用 Solidity First 应用 章节中提供的步骤运行上述程序。
首先单击updateBalance按钮将值设置为10,然后查看日志,其中将显示解码输出为 −
输出
{
"0": "uint256: 10"
}

