我正在自学Solidity,请原谅我的愚蠢问题,我是一个绝对的初学者。以下ss来自doc 我的问题是:代码的第二部分是什么意思?我在Remix中打开了代码: 正如您所看到的,部署的合约与代码的第二部分无关。特别是,我对这一行完全感到困惑:MappingExample m = new MappingExample(); “m”从哪里来?它似乎是从 Contract MappingExample 继承的,但是那行的含义是什么?我需要你的帮助。我试图在网上找到答案,但我不知道正确的关键字...如果您给我一个链接以获取更多相关信息,我将不胜感激。
我盯着“映射”、“solidity合约继承”,不幸的是,我没有得到我想要的。搜索结果只是Solidity中Mapping Type的常见用法示例,没有为初学者提供详细解释。
您提供的图片中有两份合同。 映射是一种数据结构,就像 Python 中的字典以及 C++、java 等中的哈希映射...
第一个合约具有获取
address
并返回 uint
的映射。
它还具有一个函数 update
,它获取 uint newBalance
并将其分配给 msg.sender
,即消息发送者的地址。
第二个合约想要使用第一个合约的数据(此处为映射余额)。 它有一个函数
f
可以执行以下操作:
mappingExample
实例并将其命名为 m
(程序员可以将其命名为其他任何名称,这只是一个名称。)m.update()
它与它在第一行中创建的 update
实例的 mappingExample
函数进行交互。balances
的m
返回合约(mappingUser合约)的余额(注意:第一个合约没有余额函数,但因为balances
变量有一个public
修饰符,我们可以使用它是一个从外部读取的函数。)PS:你的问题并不愚蠢。你只是在学习。慢慢来。