当前位置:首页 > 资讯 > 区块链新闻 > 正文

Solidity极简入门|第八讲:构造函数和修饰器

发布:中币网   时间:2022-06-24 00:00:00   加入收藏 打赏

原文标题:《Solidity 极简入门: 8.构造函数和修饰器》 原文作者:0xAA 我最近在重新学 solidity,巩固一下细节,也写一个「Solidity 极简入门」,供小白们使用(编程大佬可以另找教程),
原文标题:《 Solidity 极简入门: 8.构造函数和修饰器 》
原文作者:0xAA


我最近在重新学 solidity,巩固一下细节,也写一个「Solidity 极简入门」,供小白们使用(编程大佬可以另找教程),每周更新 1-3 讲。


所有代码开源在 github:github.com/AmazingAng/WTFSolidity


这一讲,我们将用合约权限控制(Ownable)的例子介绍 solidity 语言中构造函数(constructor)和独有的修饰器(modifier)。


构造函数


构造函数(constructor)是一种特殊的函数,每个合约可以定义一个,并在部署合约的时候自动运行一次。它可以用来初始化合约的一些参数,例如初始化合约的 owner 地址:



修饰器


修饰器(modifier)是 solidity 特有的语法,类似于面向对象编程中的 decorator,声明函数拥有的特性,并减少代码冗余。它就像钢铁侠的智能盔甲,穿上它的函数会带有某些特定的行为。modifier 的主要使用场景是运行函数前的检查,例如地址,变量,余额等。


钢铁侠的 modifier


我们定义一个叫做 onlyOwner 的 modifier:



代有 onlyOwner 修饰符的函数只能被 owner 地址调用,比如下面这个例子:



我们定义了一个 changeOwner 函数,运行他可以改变合约的 owner,但是由于 onlyOwner 修饰符的存在,只有原先的 owner 可以调用,别人调用就会报错。这也是最常用的控制智能合约权限的方法。


OppenZepplin 的 Ownable 标准实现: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol


总结


这一讲,我们介绍了 solidity 中的构造函数和修饰符,并举了一个控制合约权限的 Ownable 合约。


原文链接


来源:




来源:中币网  https://www.zhongbi.net/news/blocknews/313762.html
声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。