环境说明: Ide:在线remix Solidity IDE
语言:solidity solidity
版本号:0.4.20
Tip:如果一点都不懂的建议从头开始看
运行结果截图我不赘述,所有合约代码均通过个人检测。请按照标准进行操作,如出问题检测是否网络连得上外网,且操作按照第一节内容类似操作;由于版本更新,可能会出现不同,但该教材代码均适用于在0.4.20 版本使用
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;
最终部署运行:不会的看第一篇
记得一定要解锁钱包,不会的看第一篇
如果这一段不会请看第一篇
部署后调用函数:
展开合约后,点击set输入11,点击get调用合约函数将会返回11
假设输入小于10的数,则会报错