1. 程式人生 > >solidity智慧合約[32]-函式modifire

solidity智慧合約[32]-函式modifire

函式modifire

函式modifire用於在執行函式前,執行某些初始化的操作。例如許可權的判斷。
modifire可以起到封裝的作用,簡化程式碼的書寫。

modifire的定義

新增modifire關鍵字, 在花括號內部輸入語句,並在最後加上下劃線_

1
2
3
4
modifier  函式名(){
 語句;
   _;
}

modifire使用

modifire的使用方法是,將modifer的名字加在函式修飾符與返回值之間,如下所示

1
2
3
4
5
6
7
8
9
10
11
12
13
modifier OnlyOwner(){

require(msg.sender==owner);
   _;
}

function changeIt(uint _num) public OnlyOwner{
   a = _num;
}


 function getIt() view public OnlyOwner returns(address) {
  return owner;
}

對於上面加上了modifire的函式changeIt和getIt。
changeIt函式的執行流程為 首先執行require(msg.sender==owner),再執行函式體內部的所有語句,這裡是 a = _num

所以,modifier中的下劃線其實是指代的函式體內部所有語句。在執行函式內部程式碼前,會先執行modifire中的語句。

image.png