1703876710
下面给出了可见性和存取器(accessor)的一个示例:
1703876711
1703876712
1703876713
1703876714
1703876715
1703876716
1703876717
1703876718
1703876719
1703876720
1703876721
1703876722
1703876723
1703876725
区块链项目开发指南 3.9.2 函数修改器
1703876726
1703876727
我们之前看到了函数修改器(function modifier)的概念,还编写了一个基本的函数修改器,现在来深入学习修改器。
1703876728
1703876729
修改器由子合约(child contract)继承,且子合约可以对其重写。可以通过用空格分隔的列表指定修改器将多个修改器应用到一个函数,并将多个修改器按顺序估值;还可以向修改器传送实参。
1703876730
1703876731
在修改器中,无论下一个修改器体或者函数体二者哪个先到达,会被插入到“_”;出现的地方。
1703876732
1703876733
让我们来看一个函数修改器的复杂代码例子:
1703876734
1703876735
1703876736
1703876737
1703876738
1703876739
1703876740
1703876741
myFunction()的执行代码如下:
1703876742
1703876743
1703876744
1703876745
1703876746
在上述代码中调用myFunction()方法时,将返回0。但是之后访问状态变量a时,将得到8。
1703876747
1703876748
修改器或者函数体中的return(返回)立即离开整个函数,返回值被分配成它需要成为的任何变量。
1703876749
1703876750
就函数来说,return之后的代码在调用者的代码完成运行后再执行。就修改器来说,上述修改器中的“_;”之后的代码在调用者的代码完成运行后再执行。在上面的例子中,第5、6和7行从未执行过。在第4行之后,执行从第8~10行开始。
1703876751
1703876752
修改器中的return不可以有相关值,它总是返回全0。
1703876753
1703876754
1703876755
1703876756
1703876758
区块链项目开发指南 3.9.3 回退函数
1703876759
[
上一页 ]
[ :1.70387671e+09 ]
[
下一页 ]