- Solidity 教程
- Solidity - 首頁
- Solidity - 概述
- Solidity - 環境設定
- Solidity - 基本語法
- Solidity - 第一個應用
- Solidity - 註釋
- Solidity - 資料型別
- Solidity - 變數
- Solidity - 變數作用域
- Solidity - 運算子
- Solidity - 迴圈
- Solidity - 決策
- Solidity - 字串
- Solidity - 陣列
- Solidity - 列舉
- Solidity - 結構體
- Solidity - 對映
- Solidity - 型別轉換
- Solidity - 以太坊單位
- Solidity - 特殊變數
- Solidity - 樣式指南
- Solidity 函式
- Solidity - 函式
- Solidity - 函式修飾符
- Solidity - View 函式
- Solidity - Pure 函式
- Solidity - 回退函式
- 函式過載
- 數學函式
- 加密函式
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 訪問限制
- Solidity 高階
- Solidity - 合約
- Solidity - 繼承
- Solidity - 建構函式
- Solidity - 抽象合約
- Solidity - 介面
- Solidity - 庫
- Solidity - 彙編
- Solidity - 事件
- Solidity - 錯誤處理
- Solidity 有用資源
- Solidity - 快速指南
- Solidity - 有用資源
- Solidity - 討論
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"
}
廣告