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

  • 本文是《Solidity极简入门》系列第十一讲,重点介绍Solidity中的构造函数(constructor)和修饰器(modifier)概念及其应用场景。
  • 构造函数:每个合约可定义一个,在部署时自动执行一次,常用于初始化合约参数(如设置合约所有者地址)。
  • 修饰器:Solidity特有语法,类似装饰器,用于为函数添加预检查逻辑(如权限验证),减少代码冗余。例如onlyOwner修饰器可限制仅合约所有者能调用特定函数。
  • 通过Ownable合约示例,展示了如何利用构造函数初始化所有者,并通过修饰器实现权限控制(如仅允许原所有者修改合约所有权)。
  • 文中引用OpenZeppelin的Ownable.sol标准实现,作为权限控制的实践参考。
  • 教程代码开源在GitHub,适合初学者系统学习Solidity基础语法。
总结

原文:《Solidity 极简入门: 11. 构造函数和修饰器》

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

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

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

构造函数

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

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

修饰器

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

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

钢铁侠的 modifier

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

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

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

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

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

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

总结

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

分享至:

作者:0xAA

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:0xAA如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
2024-03-19 09:00
2024-03-19 09:00
2024-03-19 08:00
2024-03-19 07:00
2024-03-19 06:00
2024-03-19 05:00

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读