【发布时间】:2020-04-24 21:20:55
【问题描述】:
我是一个 Solidity 初学者。 我想知道为什么我应该使用构造函数。 是为了声明数据类型吗? 这是我做的两个例子。两者的工作方式相同,实现相同的结果。
//--without constructor
pragma solidity 0.5.1;
contract MyContract {
mapping(address => uint256) public balances;
address payable wallet;
function buyToken() public payable {
balances[msg.sender] += 1;
wallet.transfer(msg.value);
}
}
//------------ with constructor
pragma solidity 0.6.5;
contract MyContract {
mapping(address => uint256) public balances;
address payable wallet;
constructor(address payable _wallet) public {
wallet = _wallet; //I don't know why they did "wallet = _wallet;"...it seems very inconvenient..
}
function buyToken() public payable {
balances[msg.sender] += 1;
wallet.transfer(msg.value);
}
}
即使它们以相同的方式工作,为什么我需要构造函数。请给我教训。
【问题讨论】:
标签: blockchain ethereum solidity