📜  Solidity-映射

📅  最后修改于: 2020-11-04 04:23:22             🧑  作者: Mango


 

映射是数组和结构的引用类型。以下是声明映射类型的语法。

mapping(_KeyType => _ValueType)

哪里

  • _KeyType-可以是任何内置类型,以及bytes和字符串。不允许引用类型或复杂对象。
  • _ValueType-可以是任何类型。

注意事项

  • 映射只能具有存储类型,通常用于状态变量。
  • 映射可以标记为公共。 Solidity会自动为其创建吸气剂。

尝试以下代码以了解映射类型如何在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 Application一章中提供的步骤运行上述程序。

首先单击updateBalance按钮将值设置为10,然后查看日志,解码后的输出将显示为-

输出

{
   "0": "uint256: 10"
}