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中的语句。