Solidity Basic:Solidity 文档中的映射类型示例

问题描述 投票:0回答:1

我正在自学Solidity,请原谅我的愚蠢问题,我是一个绝对的初学者。以下ss来自dochttps://docs.soliditylang.org/en/v0.8.22/types.html#mapping-types 我的问题是:代码的第二部分是什么意思?我在Remix中打开了代码:ss from Remix 正如您所看到的,部署的合约与代码的第二部分无关。特别是,我对这一行完全感到困惑:MappingExample m = new MappingExample(); “m”从哪里来?它似乎是从 Contract MappingExample 继承的,但是那行的含义是什么?我需要你的帮助。我试图在网上找到答案,但我不知道正确的关键字...如果您给我一个链接以获取更多相关信息,我将不胜感激。

我盯着“映射”、“solidity合约继承”,不幸的是,我没有得到我想要的。搜索结果只是Solidity中Mapping Type的常见用法示例,没有为初学者提供详细解释。

inheritance mapping solidity smartcontracts
1个回答
0
投票

您提供的图片中有两份合同。 映射是一种数据结构,就像 Python 中的字典以及 C++、java 等中的哈希映射...

第一个合约具有获取

address
并返回
uint
的映射。 它还具有一个函数
update
,它获取
uint newBalance
并将其分配给
msg.sender
,即消息发送者的地址。

第二个合约想要使用第一个合约的数据(此处为映射余额)。 它有一个函数

f
可以执行以下操作:

  1. 它创建一个新的
    mappingExample
    实例并将其命名为
    m
    (程序员可以将其命名为其他任何名称,这只是一个名称。)
  2. 使用
    m.update()
    它与它在第一行中创建的
    update
    实例的
    mappingExample
    函数进行交互。
  3. 通过读取实例
    balances
    m
    返回合约(mappingUser合约)的余额(注意:第一个合约没有余额函数,但因为
    balances
    变量有一个
    public
    修饰符,我们可以使用它是一个从外部读取的函数。)

PS:你的问题并不愚蠢。你只是在学习。慢慢来。

© www.soinside.com 2019 - 2024. All rights reserved.