new
关键字用于创建新智能合约的用途是什么。为什么不省略这个关键字?
答案 0 :(得分:0)
您无法省略new
关键字来创建新合约。
如果是:token = new Token;
创建新对比并将地址传递给token
。
如果是:token = existingToken;
existingToken
必须是现有合约(已创建),token
将传递existingToken
的当前地址。
答案 1 :(得分:0)
有两种创建合同的方法
使用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();
}
}