Я начинающий по солидности. Мне интересно, почему я должен использовать конструктор. Это для объявления типа данных? Вот два примера, которые я сделал. И оба работают одинаково и реализуют один и тот же результат.
//--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);
}
}
Несмотря на то, что они работают одинаково, зачем мне нужен конструктор. Пожалуйста, дайте мне урок.