新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“如何使用修饰符让Solidity有更好的可读性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用修饰符让Solidity有更好的可读性”吧!
作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联提供从前期的网站品牌分析策划、网站设计、网站设计、成都网站建设、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。
修饰符是可以应用于其他函数的一个函数。在调用函数之前,确保满足某些先决条件非常有用。我们举一个简单的例子,在我们已经写过的合约中,我们经常要检查函数的调用者是否是合约的所有者:
function increment() public { if (owner == msg.sender) { // We check who calls the function count = count + 1; } }
想象一下,如果我们的智能合约有多个只能由所有者调用的函数,那么如果owner == msg.sender
部分需要重构那么怎么做?这是修饰语将帮助我们的地方。让我们看第一个修饰符:
modifier isAdmin() { require(msg.sender == owner); _; } function increment() public isAdmin { count = count + 1; }
我们的修饰符看起来像一个函数。require()
函数评估条件,如果不满足条件将抛出异常,这将停止执行我们的智能合约。_
关键字告诉编译器用函数体替换_
。
与函数一样,修饰符可以接受参数。假设我们可以拥有多个用户,并希望检查所有权,看下面的代码:
modifier onlyBy(address _account) { require(msg.sender == _account); _; } function increment() public onlyBy(owner) { count = count + 1; }
正如你所看到的,我们的修饰符更通用,这让我们可以做更多事。
你还可以编写最通用的修饰符,只有在任何条件为真时才运行:
modifier onlyIf(bool _condition) { require(_condition); _; } function increment() public onlyIf(msg.sender == owner) { count = count + 1;
通过在空格分隔的列表中指定多个修饰符,将多个修饰符应用于函数,并按所显示的顺序进行评估。
modifier onlyIf(bool _condition) { require(_condition); _; } function increment() public onlyIf(msg.sender == owner) onlyIf(count < 200) { count = count + 1; }
到此,相信大家对“如何使用修饰符让Solidity有更好的可读性”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!