Solidity - 對映



對映是一種引用型別,類似於陣列和結構體。以下是宣告對映型別的語法。

mapping(_KeyType => _ValueType)

其中

  • _KeyType - 可以是任何內建型別,以及位元組和字串。不允許使用引用型別或複雜物件。

  • _ValueType - 可以是任何型別。

注意事項

  • 對映只能具有儲存型別,通常用於狀態變數。

  • 對映可以標記為 public。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 第一個應用章節中提供的步驟執行以上程式。

首先點選updateBalance按鈕將值設定為 10,然後檢視日誌,其中將顯示解碼後的輸出為 -

輸出

{
   "0": "uint256: 10"
}
廣告

© . All rights reserved.