Какая польза от функции конструктора в Solidity - PullRequest
1 голос
/ 23 апреля 2020

Я начинающий по солидности. Мне интересно, почему я должен использовать конструктор. Это для объявления типа данных? Вот два примера, которые я сделал. И оба работают одинаково и реализуют один и тот же результат.

//--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);

   }
}

Несмотря на то, что они работают одинаково, зачем мне нужен конструктор. Пожалуйста, дайте мне урок.

1 Ответ

1 голос
/ 24 апреля 2020

Конструктор такой же, как и в других языках программирования, особенно в объектно-ориентированных:

https://en.wikipedia.org/wiki/Constructor_ (объектно-ориентированное_программирование)

Вызывается конструктор Solidity один раз, когда новый экземпляр смарт-контракта развернут в Ethereum блокчейне.

...