这个solidity变量类型是什么



我正在学习一门16小时的坚实课程,但我被卡住了。我搞不清楚SimpleStorage是什么。它是一个类吗?它是导入的文档吗?我不知道。它使用了多次,但方式不同,我很困惑。如果这还不足以解决这个问题,我很乐意分享更多信息。

SimpleStorage[] public simpleStorageArray;
SimpleStorage simpleStorage = SimpleStorage(address(simpleStorageArray[_simpleStorageIndex])).store(_simpleStorageNumber);
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
import "./SimpleStorage.sol"; 
contract StorageFactory is SimpleStorage {

SimpleStorage[] public simpleStorageArray;

function createSimpleStorageContract() public {
SimpleStorage simpleStorage = new SimpleStorage();
simpleStorageArray.push(simpleStorage);
}
function sfStore(uint256 _simpleStorageIndex, uint256 _simpleStorageNumber) public {
SimpleStorage simpleStorage = SimpleStorage(address(simpleStorageArray[_simpleStorageIndex])).store(_simpleStorageNumber);
}
SimpleStorage是从import "./SimpleStorage.sol"导入的合同。实体中的契约是由contract关键字定义的,该关键字可以被认为是class。我们在网络中部署这些契约,这些部署的版本可以被视为类的实例。如果你看看任何一个契约,它都有类的定义。主要的区别是,在类中,我们创建了一个这样的新实例:
my_instance=MyClass() # in python
cont myInstance=new MyClass() // javascript

但在合同中,我们在部署合同时会创建实例。我们不能像创建类实例那样创建契约实例。

contract StorageFactory is SimpleStorage{}

这是inheritance,意味着我们可以访问这里的SimpleStorage状态变量和函数。

SimpleStorage[] public simpleStorageArray;

我们正在创建一个存储SimpleStorage契约实例的数组,并将此数组命名为simpleStorageArray

最新更新