1. 程式人生 > >solidity智慧合約[31]-建構函式

solidity智慧合約[31]-建構函式

建構函式的作用

建構函式是特殊的函式,在部署合約的時候,就會被呼叫。而且只能夠在此時被呼叫。
常常用於對於某一些狀態變數的初始化。

建構函式

在老版本的solidity編譯器中,建構函式是和合約名字同名的

1
2
3
4
5
6
7
8
9
10
11
contract  ontractinit{

uint public a ;
//無引數的建構函式
function ontractinit() public{
   a = 100;
}
//帶引數的建構函式
 function ontractinit(uint _a,uint _b) public{
   a = _a;

}

新版本的solidity編譯器中,使用關鍵詞constructor作為建構函式

1
2
3
4
5
6
7
8
9
10
11
12
13
uint public a ;
address public owner;


// 將部署者地址儲存到owner變數
constructor() public {
  owner = msg.sender;
}

//帶參建構函式
constructor(uint _a) public{
   a = _a;
}

完整程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

19
20
pragma solidity ^0.4.23;

contract  ontractinit{
   // function ontractinit() public{
   //     a = 100;
   // }

   //   function ontractinit(uint _a,uint _b) public{
   //     a = _a;
   // }
   uint public a ;

   address public owner;
   constructor(uint _a) public{
       a = _a;
   }
   constructor() public {
       owner = msg.sender;
   }

}

image.png