Blockchain 什么';s构造函数在Solidity中的使用

Blockchain 什么';s构造函数在Solidity中的使用,blockchain,ethereum,solidity,Blockchain,Ethereum,Solidity,我是一个坚实的初学者。 我想知道为什么我应该使用构造函数。 它是用来声明数据类型的吗? 下面是我举的两个例子。两者都以相同的方式工作,并实现相同的结果 //--without constructor pragma solidity 0.5.1; contract MyContract { mapping(address => uint256) public balances; address payable wallet; function buyToken() publ

我是一个坚实的初学者。 我想知道为什么我应该使用构造函数。 它是用来声明数据类型的吗? 下面是我举的两个例子。两者都以相同的方式工作,并实现相同的结果

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

   }
}

即使它们以相同的方式工作,为什么我需要构造函数呢。请给我上一课。

构造函数与其他编程语言相同,特别是在面向对象的语言中:

在以太坊区块链中部署智能合约的新实例时,将调用一次Solidity构造函数