3.2 智能合约的结构
合约就像一个类(class),其中包含状态变量(state variable)、函数(function)、函数修改器(function modifier)、事件(event)、结构(structure)和枚举(enum)。合约还支持继承,通过在编译时备份代码来实现。最后,合约还支 持多态。
下面来看一个智能合约的例子:
上述代码的工作原理如下:
1)使用contract关键字声明一个合约。
2)声明两个状态变量data和owner。data包含一些数据,owner包含所有者的以太坊钱包地址,即部署合约者的以太坊地址。
3)定义一个事件(event)。事件用于通知客户端。一旦data发生变化,将触发这个事件。所有事件都保存在区块链中。
4)定义一个函数修改器(function modifier)。修改器用于在执行一个函数之前自动检测条件。这里,修改器检测合约所有者是否在调用函数。如果不是,就抛出异常。
5)得到合约构造函数(constructor)。在部署合约时,调用构造函数。构造函数用于初始化状态变量。
6)定义两个方法。第一个方法用于得到data状态变量的值,第二个方法用于改变data的值。
在更深入地学习智能合约的函数之前,我们先来学习一些与Solidity有关的其他知识,然后再回到合约。
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=582