solidity modifier函数修改器 智能合约开发知识浅学(三)

环境说明: 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;

最终部署运行:不会的看第一篇
记得一定要解锁钱包,不会的看第一篇
solidity modifier函数修改器 智能合约开发知识浅学(三)_第1张图片

如果这一段不会请看第一篇

部署后调用函数:
solidity modifier函数修改器 智能合约开发知识浅学(三)_第2张图片
展开合约后,点击set输入11,点击get调用合约函数将会返回11
假设输入小于10的数,则会报错

你可能感兴趣的:(以太坊智能合约开发)