Solidity极简入门第六讲:映射类型 mapping

  • 本文是Solidity极简入门系列第六讲,重点介绍Solidity中的映射类型(Mapping),这是一种通过键(Key)查询对应值(Value)的哈希表结构
  • 映射的声明格式为 mapping(_KeyType => _ValueType),其中 _KeyType 必须是Solidity默认类型(如uint、address),而 _ValueType 允许自定义类型
  • 映射的四个核心规则:
    1. 键类型不可用自定义结构体
    2. 存储位置必须为storage(仅适用于状态变量或函数内storage变量)
    3. 声明为public时会自动生成按键查询的getter函数
    4. 新增键值对的语法为 _Var[_Key] = _Value
  • 文章包含多个代码示例,展示映射的定义、错误用法(自定义键类型)及实际操作
  • 作者提到后续将转向控制流(if-else、while等)内容,所有教程代码开源在GitHub
总结

原文:《Solidity 极简入门: 6. 映射类型 mapping》
作者:0xAA

我最近在重新学 solidity,巩固一下细节,也写一个「Solidity 极简入门」,供小白们使用(编程大佬可以另找教程),每周更新 1-3 讲。

所有代码开源在 github :github.com/AmazingAng/WTFSolidity

这一讲,我们将介绍 solidity 中的哈希表:映射(Mapping)类型。

映射 Mapping

在映射中,人们可以通过键(Key)来查询对应的值(Value),比如:通过一个人的 id 来查询他的钱包地址。

声明映射的格式为 mapping(_KeyType => _ValueType),其中 _KeyType 和 _ValueType 分别是 Key 和 Value 的变量类型。例子:

Solidity极简入门第六讲:映射类型 mapping

映射的规则

规则 1:映射的 _KeyType 只能选择 solidity 默认的类型,比如 uint,address 等,不能用自定义的结构体。而 _ValueType 可以使用自定义的类型。下面这个例子会报错,因为 _KeyType 使用了我们自定义的结构体:

Solidity极简入门第六讲:映射类型 mapping

规则 2:映射的存储位置必须是 storage,因此可以用于合约的状态变量,函数中的 stoage 变量。不能用于 public 函数的参数或返回结果中。

规则 3:如果映射声明为 public,那么 solidity 会自动给你创建一个 getter 函数,可以通过 Key 来查询对应的 Value。

规则 4:给映射新增的键值对的语法为 _Var[_Key] = _Value ,其中 _Var 是映射变量名,_Key 和 _Value 对应新增的键值对。例子:

Solidity极简入门第六讲:映射类型 mapping

总结

这一讲,我们介绍了 solidity 中哈希表——映射(Mapping)的用法。至此,我们已经学习了所有常用变量种类,之后我们会学习控制流 if-else, while 等。

分享至:

作者:0xAA

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:0xAA如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
9分钟前
1小时前
4小时前
5小时前
6小时前
9小时前

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读