『0003』
来源:互联网 发布:天津大学有网络教育吗 编辑:程序博客网 时间:2024/06/05 06:43
孔壹学院:国内区块链职业教育领先品牌
作者:黎跃春,区块链、高可用架构工程师
微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org
什么是合约?
在区块链上运行的程序,通常称为智能合约(Smart Contract)��
。所以通常会把写区块链程序
改称写智能合约
。
简单点来讲,合约就是运行在区块链上的一段程序。
一个完整的合约
pragma solidity ^0.4.4;contract Counter { uint count = 0; address owner; function Counter() { owner = msg.sender; } function increment() public { uint step = 10; if (owner == msg.sender) { count = count + step; } } function getCount() constant returns (uint) { return count; } function kill() { if (owner == msg.sender) { selfdestruct(owner); } }}
版本声明
pragma solidity ^0.4.4;
pragma solidity
代表solidity
版本声明,0.4.4
代表solidity
版本,^
表示向上兼容,^0.4.4
表示solidity
的版本在0.4.4 ~ 0.5.0(不包含0.5.0)
的版本都可以对上面的合约代码进行编译,0.4.5
,0.4.8
等等可以用来修复前面的solidity
存在的一些bug
。
合约声明
contract
是合约声明的关键字,Counter
是合约名字,contract Counter
就是声明一个Counter
合约。
contract
相当于其他语言中的class
,Counter
相当于类名,contract Counter
相当于class Counter extends Contract
。
状态变量
uint count = 0;address owner;
count
和owner
就是状态变量,合约中的状态变量相当于类
中的属性变量。
构造函数(Contructor)
function Counter()
函数名和合约名相同时,此函数是合约的构造函数,当合约对象创建时,会先调用构造函数对相关数据进行初始化处理。
成员函数
function increment() public
和function getCount() constant returns (uint)
都是Counter
合约的成员函数,成员函数在iOS里面叫做方法、行为,合约实例可以调用成员函数处理相关操作。当调用increment()
函数时,会让状态变量count
增加step
。当调用getCount()
时会得到状态变量count
的值。
本地变量
function increment() public { uint step = 10; if (owner == msg.sender) { count = count + step; }}
increment()
方法中声明的step
就是局部变量。局部变量只在离它最近的{}
内容使用。
析构函数(selfdestruct)
析构函数
和构造函数
对应,构造函数是初始化数据,而析构函数是销毁数据。在counter
合约中,当我们手动调用kill
函数时,就会调用selfdestruct(owner)
销毁当前合约。
技术交流
区块链技术交流QQ群:348924182
「区块链部落」官方公众号
- 『0003』
- 『10.28』
- 『心不難,事就不難!』
- 『小说』楚门谣
- 『新生』
- 『独家记忆』
- 『MySQL』时间差
- 『MySQL』UPDATE
- 『MySQL』时间差
- 『MySQL』UPDATE
- 『perl』学习
- 『网络』记录
- 『H264』
- 『数学模型』图
- 『IOS』
- 『IOS』lineBreakMode
- 『ANDROID』Handler
- 『细节』是什么
- C语言 穷举n位二进制数
- 『0002』
- Uboot1.1.16源代码完全注释笔记
- linux中的定时和延时任务
- Android List(集合)中的对象以某一个字段排序
- 『0003』
- PAT Basic 1002
- Hibernate_一级缓存_延迟加载_持久化
- noip2013转圈游戏
- 中缀表达式转后缀表达式
- NOIP 模板整理计划 NOIP2017 RP++(持续更新中~)
- 20171031
- CSS固定图片或元素在屏幕右下角
- bzoj5071 [Lydsy十月月赛]小A的数字