簡體   English   中英

Solidity中構造函數function有什么用

[英]What's the use of constructor function in 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);

   }
}

即使它們以相同的方式工作,為什么我需要構造函數。 請給我教訓。

構造函數與其他編程語言相同,尤其是面向 object 的語言:

https://en.wikipedia.org/wiki/Constructor_(面向對象編程)

當智能合約的新實例部署在以太坊區塊鏈中時,會調用一次 Solidity 構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM