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;

最终部署运行:不会的看第一篇
记得一定要解锁钱包,不会的看第一篇
部署运行

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

部署后调用函数:
在这里插入图片描述
展开合约后,点击set输入11,点击get调用合约函数将会返回11
假设输入小于10的数,则会报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度网盘超级会员,年卡低至198元!百度官方直充,会员实时生效!

大家都喜欢用百度网盘来存储文件、照片,还用百度网盘分享文档,但没有会员的,容量就太小,传输速度也受限,还是咬牙充个会员吧!幻海优品是一家正规的会员充值平台,价格很实惠!百度网盘…

C#服务器编程:WebService、Ajax与回调函数(一)

目 录 1、结果展示 2、WebService 3、回调函数 本实例演示借助WebService、Ajax技术和回调函数,从MSSQL数据库中获取所需数据,并用JavaScript语言将数据结果显示到网页地图上。 1、结果展示 2、WebService (1)在工具箱的Ajax Extentions下面找到ScriptManager控件,拖…

SyntaxHighlighter行号显示错误问题解决方案

SyntaxHighlighter是根据代码中的换行符分配行号的。但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,会出现行号对不上的问题,像这样: 通过设置CSS强制不换行,可以保证行号显示正常&#x…

mysql 一对多 关联一条最新的数据_不得不会的mysql锁

6. 多表之间的关系如图,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系。分类表create table category( cid varchar(32) primary key, cname varchar(100) );商品表create table product( pid varchar(3…

C语言实现万年历记事本,简单实用的layui日历标注记事本代码

一款简单实用的layui日历标注记事本代码,响应式自适应电脑、平板跟手机移动端,可以在日历上设置每日事项标注记录,支持撤销、添加、修改标注记录。查看演示下载资源:52次 下载资源下载积分:20积分js代码 layui.use([la…

围棋经典棋谱_秀秀老师:茶艺师也要学好围棋

“引清风,邀明月,去来兮。省多少闲是闲非。临山近水,近些松竹向些梅。书院茶香几多般,诗酒琴棋。无萦无烦恼,无别离。于中国文人雅士而言,茶与棋,皆是清雅之物事。曹臣《舌花录》中,…

基于 Dapr 和 .NET 开发云原生应用(奉上视频+资料)

点击蓝字/关注我序言:今年是.NET20周年,为了传播.NET和营造.NET技术氛围举办了此次云原生开发挑战赛,请来众多业界大咖来给大家分享技术,为大家参赛做预热,参赛的朋友都可获得51Aspx 500积分和微软亲签证书&#xff0c…

【Spring-AOP-学习笔记-3】@Before前向增强处理简单示例

项目结构程序代码HelloImpl.javaWorldImpl.java定义切面类package org.crazyit.app.aspect;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;// 定义一个切面Aspectpublic class AuthAspect{ // 匹配org.crazyit.app.service.impl包下所…

sklearn 线性回归_使用sklearn库做线性回归拟合

背景资料随着海拔高度的上升,温度越来越低,经过气象专家的研究,在一定的海拔高度范围内,高度和温度呈线性关系。现有一组实测资料,我们需要对这些数据进行处理拟合,获得此线性关系。解决思路采用sklearn库中…

VS2022之DebuggerVisualizer

在Debug程序时,面对一些大集合,之前是这样查看的,如下图,这样看起来不直观,集合中的数据只能一个一个实体查看:VS2022预览版带来一个新功能,集合表格可视化,比如下面这样一段代码&am…

SmartIDE支持开源国产IDE - 阿里蚂蚁的OpenSumi丨IDCF

作者:徐磊文章首发地址:https://smartide.cn/zh/blog/2022-0419-sprint16/SmartIDE v0.1.16 (Build 3137)已经在2022年4月19日发布到稳定版通道,我们在这个版本中增加了阿里和蚂蚁发布的国产IDE OpenSumi的支持,以及其他一些改进。…

js操作文件

在HTML表单中&#xff0c;可以上传文件的唯一控件就是<input type"file">。 注意&#xff1a;当一个表单中包含<input type"file">时&#xff0c;表单的enctype必须指定 为multipart/form-data,method必须指定为post&#xff0c;浏览器才能正确…

mycat 双主 热切换

为什么80%的码农都做不了架构师&#xff1f;>>> Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"ht…

6 四大组件之Service

6-1 Servie概述 组件篇——Service 定义:  1.后台运行,不可见,没有界面  2.优先级高于Activity Service是Android系统的后台服务组件&#xff0c;适用于开发无界面、长时间运行的应用功能。 Service特点如下&#xff1a; 没有用户界面 不会轻易被Android系统终止 在系统…

WCF服务寄宿IIS时.SVC文件无法浏览的解决办法

在IIS中托管服务和经典的ASMX Web服务托管相似,需要在IIS下创建虚拟目录,并提供一个.svc文件和Web.config配置文件。另外,托管时,服务的基地址必须与.svc文件的地址相同。 一、操作步骤: (1)打开IIS,新建网站,选择物理路径 (2)打开IIS,在默认网站下添加应用程序,…

C#语法糖系列 —— 第一篇:聊聊 params 参数底层玩法

首先说说为什么要写这个系列&#xff0c;大概有两点原因。这种文章阅读量确实高...对 IL 和 汇编代码 的学习巩固所以就决定写一下这个系列&#xff0c;如果大家能从中有所收获&#xff0c;那就更好啦&#xff01;一&#xff1a;params 应用层玩法 首先上一段 测试代码。class …

nginx 修改配置文件使之支持pathinfo,且隐藏index.php

声明环境&#xff1a; nginx centos6.8 使用lnmp一键包搭建环境&#xff08;2019年2月19日 &#xff09;以前使用过别的办法去修改配置文件&#xff0c;但是过于繁琐&#xff0c;最近发现新版本中&#xff0c;在nginx 的 conf目录下发现了文件“enable-php-pathinfo.conf”&am…

关于在Windows下AndroidStudio.使用React-Native开发android报错红屏“run react-native start”解决

以下是报错&#xff0c;不过他已经给了解决办法&#xff0c;报错提示的大概中文译为“无法加载脚本&#xff0c;请确保你的Metro服务以及那个包正确”&#xff0c;由于我个人并不是专业安卓&#xff0c;公司项目没办法就上了&#xff0c;所以我就不关包了&#xff0c;包肯定是正…

主成分分析法_数学建模 || 葡萄酒的评价(1)主成分分析法

首先要说一下&#xff0c;这篇文章我在其他的平台发过&#xff0c;也是本人亲自写的&#xff0c;如果大家觉得眼熟的话放弃轻松&#xff0c;没有抄袭&#xff0c;主要是因为与我这 “葡萄酒的评价” 题目成系列了&#xff0c;因此在这里再把这个贴出来。2012 年 A 题葡萄酒的评…

imagePreview接口调用微信自带图片播放器

2019独角兽企业重金招聘Python工程师标准>>> 在微信浏览器中&#xff0c;出现在网页上的图片通过点按一小段时间&#xff0c;可以调出微信隐藏的图片播放器&#xff0c;在播放器中看图可以随意放大缩小&#xff0c;体验更炫酷。不过这个功能默认只对通过微信后台编辑…