solidity智能合约 modifier 函数详解
modifier 为函数的修改器,可以为一个函数控制其中逻辑。修改器为属性,可以继承和重写。
函数修改器可以很方便的控制器逻辑,让项目结构清晰合理。其实如果浅显的看,和 tp 框架的前置操作有异曲同工之妙。
代码如下:
pragma solidity ^0.4.20;
contract Test{
uint256 a;
modifier modifierfunc(uint256 value){
require(value >= 10);
_;
}
function set(uint256 x)public modifierfunc(x){
a=x;
}
function get() public constant returns(uint256){
return a;
}
}
首先声明 solidity 版本号
定义合约函数,名为 Test,这里和上一节都一样、
接下来声明一个 uint256 变量 a
uint256 a;
接下来定义一个函数修改器:
modifier modifierfunc(uint256 value){
require(value >= 10);
_;
}
其中关键字为
modifier
函数修改器名为
modifierfunc
这个函数修改器接收一个
uint256类型的参数value
其中
require
为检查输入是否满足要求
require(value >= 10);
其中 value 是否大于等于 10,如果没有则抛出错误 接下来是一个占位符下划线,表示接下来要执行的代码,意思说还有执行完后如果没有错误将会执行下面的代码。
set函数:
function set(uint256 x)public modifierfunc(x){
a=x;
}
其中是一个名为 set 的方法,接收一个 uint256 类型的参数 x
用 public 修饰符修饰整个函数
并且用函数修改器修饰这个函数,这个函数修改器是 modifierfunc
并且接收参数为之前 set 函数接收的参数 x
函数内容为 a=x
把键入的 x 的值给予合约属性 a 变量
get 函数:
function get() public constant returns(uint256){
return a;
}
在这里 get 函数为 public 类型
用 constant 修饰这个函数表示未进行修改变量
返回值为 uint256,用 returns 修饰返回值类型
最后返回:return a;
本文由 我爱PHP169 作者:admin 发表,其版权均为 我爱PHP169 所有,文章内容系作者个人观点,不代表 我爱PHP169 对观点赞同或支持。如需转载,请注明文章来源。