solidity编写eth智能合约之contract 创建合约(二)
环境说明: Ide:在线remix Solidity IDE 语言:solidity solidity 版本号:0.4.20 Tip:如果一点都不懂的建议从头开始看 运行结果截图我不赘述,所有合约代码均通过个人检测。请按照标准进行操作,如出问题检测是否网络连得上外网,且操作按照第一节内容类似操作;由于版本更新,可能会出现不同,但该教材代码均适用于在0.4.20 版本使用 为什么要用0.4.20 这个老版本。。。我可能习惯用,每次更新都一对老代码报错,太懒了就默默的用着0.4.20版本。。。
在solidity中,合约的语法和面向对象很相似,在一般的面向对象语言中,我们使用class来定义一个类;在这一个类中我们将会有这个类的方法属性。
在solidity中,我们使用contract来定义一个合约,这个合约可以用对应的合约变量,以及合约的方法。
一个简单合约的定义:
pragma solidity ^0.4.20;
contract Test{
}
首先:pragma solidity ^0.4.20; 声明版本号 contract 创建一个名为 Test 的合约
接下来在合约其中书写合约变量以及一些简单的读取函数:
pragma solidity ^0.4.20;
contract Test{
uint256 val;//声明变量
//设置方法
function set(uint256 x)public{
val=x;
}
//取值
function get() public constant returns(uint256){
return val;
}
}
代码解析: set函数 pragma solidity ^0.4.20;:
版本号说明
contract Test{} :
合约定义
uint256 val;:
声明uint 无符号整形256位类型的变量 val
function set(uint256 x)public{}:
定义public的类型的函数set 并且接收参数x为uint256类型的参数。 在这里,我们类似于c++,java,类型修饰符大多是在函数开头修饰,在这里,public位于函数开头中后位置修饰,这点有点类似于golang,如果我们去掉public则默认为public函数。 在0.4.2版本如此,如果去掉public可能会比较好理解:function set(uint256 x){} 这样就和常规的声明函数差不多了。
函数内容: val=x;
把传入的参数x的值赋值给合约变量val,这个val就等于和类成员变量一样
get函数: function get() public constant returns(uint256){}:
声明get函数 public修饰符修饰 constant 表示这个函数没有修改操作,只是读取之类 returns() 表示返回值为 uint256 表示返回值为uint256
return val;:
返回val的值
运行:
部署好之后:
随便输入一个值到set:
之后点击get将会返回刚刚你设置的值:
记住,一定要选择狐狸钱包和测试网络并且解锁,也就是刚登陆的时候打密码打开你的钱包。
- shell脚本自动化采集性能sql(r2笔记39天)
- R语言与点估计学习笔记(EM算法与Bootstrap法)
- 开发 | 为个人深度学习机器选择合适的配置
- 阿里音乐流行趋势预测竞赛数据清洗整合——纯python
- 生产环境sql语句调优实战第二篇(r2第38天)
- 生产环境sql语句调优实战第三篇(r2笔记38天)
- 简单易学的机器学习算法——K-Means算法
- 通过shell脚本定位性能sql和生成报告(r2笔记37天)
- VXFS启用异步IO导致的严重问题(r2笔记56天)
- 通过sql语句分析足彩(r2笔记55天)
- 关于验证表中有无数据的方法比较(r2笔记54天)
- 海量数据迁移之分区并行抽取(r2笔记53天)
- 海量数据迁移之外部表切分(r2笔记52天)
- 怎样突破表名30个字符的限制(r2笔记51天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 整数拆分
- Android Drawerlayout实现侧滑菜单效果
- 分割等和子集
- LeetCode--打家劫舍问题
- Android 中ListView和GridView赋值错位
- 谈谈类加载器
- Android中AlarmManager+Notification实现定时通知提醒功能
- Java垃圾回收相关面试题
- Android中backgroundDimEnabled的作用
- 甲基化相关的习题背景补充
- Android 完全退出的实例详解
- Android 双击Back键退出应用的实现方法
- 2020最全Java面试题--基础篇
- Android开发之背景动画简单实现方法
- 15.深入k8s:Event事件处理及其源码分析