使用和不使用`new`关键字创建新的可靠性合同有什么区别

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

new关键字用于创建新智能合约的用途是什么。为什么不省略这个关键字?

ethereum contract solidity
2个回答
0
投票

您不能省略new关键字来创建新合同。

在案件中:token = new Token;

创建一个新的对比,并将地址传递给token

在案件中:token = existingToken;

existingToken必须是现有的合同(已经创建),token将通过existingToken的当前地址。


0
投票

您可以通过两种方式创建合同

  1. 使用'new'关键字
  2. 使用合同的地址

使用new关键字可以实例化合同的新实例并使用新创建的合同实例

在后一个选项中,您使用已部署和实例化的合同的地址。您可以查看以下代码以供参考:

pragma solidity ^0.5.0;

contract Communication {

    string public user_message;

    function getMessage() public view returns (string memory) {
        return user_message;
    }

    function setMessage(string memory _message) public {
        user_message = _message;
    }
}

contract GreetingsUsingNew {

    function sayHelloUsingNew() public returns (string memory) {
        Communication newObj = new Communication();
        newObj.setMessage("Contract created using New!!!");

        return newObj.getMessage();
    }

}

contract GreetingsUsingAddress {

    function sayHelloUsingAddress(address _addr) public returns (string memory) {
        Communication addObj = Communication(_addr);
        addObj.setMessage("Contract created using an Address!!!");

        return addObj.getMessage();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.