【问题标题】:What's the use of constructor function in SoliditySolidity中构造函数有什么用
【发布时间】: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


    【解决方案1】:

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

    https://en.wikipedia.org/wiki/Constructor_(object-oriented_programming)

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

    【讨论】:

      猜你喜欢
      • 2022-12-18
      • 2015-11-16
      • 2013-06-24
      • 1970-01-01
      • 2015-09-28
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多