打字猴:1.703876416e+09
1703876416 区块链项目开发指南 [:1703875293]
1703876417 区块链项目开发指南 3.1 Solidity源文件
1703876418
1703876419 Solidity源文件使用的扩展名为.sol。与其他编程语言一样,Solidity有多种版本。在写本书时,其最新版本是0.4.2。
1703876420
1703876421 在源文件中,可以使用pragma Solidity说明编写代码时用的编译器版本。例如,
1703876422
1703876423
1703876424
1703876425
1703876426 现在,源文件不会用低于0.4.2的编译器版本,也不会用高于0.5.0的编译器版本进行编译(第二个条件使用^添加)。0.4.2和0.5.0之间的编译器版本最有可能包括bug修复。
1703876427
1703876428
1703876429 可以为编译器版本指定更复杂的规则;使用与npm一样的表达式。
1703876430
1703876431
1703876432
1703876433
1703876434 区块链项目开发指南 [:1703875294]
1703876435 区块链项目开发指南 3.2 智能合约的结构
1703876436
1703876437 合约就像一个类(class),其中包含状态变量(state variable)、函数(function)、函数修改器(function modifier)、事件(event)、结构(structure)和枚举(enum)。合约还支持继承,通过在编译时备份代码来实现。最后,合约还支持多态。
1703876438
1703876439 下面来看一个智能合约的例子:
1703876440
1703876441
1703876442
1703876443
1703876444 上述代码的工作原理如下:
1703876445
1703876446 1)使用contract关键字声明一个合约。
1703876447
1703876448 2)声明两个状态变量data和owner。data包含一些数据,owner包含所有者的以太坊钱包地址,即部署合约者的以太坊地址。
1703876449
1703876450 3)定义一个事件(event)。事件用于通知客户端。一旦data发生变化,将触发这个事件。所有事件都保存在区块链中。
1703876451
1703876452 4)定义一个函数修改器(function modifier)。修改器用于在执行一个函数之前自动检测条件。这里,修改器检测合约所有者是否在调用函数。如果不是,就抛出异常。
1703876453
1703876454 5)得到合约构造函数(constructor)。在部署合约时,调用构造函数。构造函数用于初始化状态变量。
1703876455
1703876456 6)定义两个方法。第一个方法用于得到data状态变量的值,第二个方法用于改变data的值。
1703876457
1703876458 在更深入地学习智能合约的函数之前,我们先来学习一些与Solidity有关的其他知识,然后再回到合约。
1703876459
1703876460
1703876461
1703876462
1703876463 区块链项目开发指南 [:1703875295]
1703876464 区块链项目开发指南 3.3 数据位置
1703876465
[ 上一页 ]  [ :1.703876416e+09 ]  [ 下一页 ]