LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > Solidity极简入门|第六讲:映射类型 mapping

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

2022-06-19 区块律动BlockBeat 来源:区块链网络
原文标题:《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 的变量类型。例子:



映射的规则


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



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


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


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



总结


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


原文链接


—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

知识 Solidity
LOADING...
LOADING...