- 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" }
广告