首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调制器过载

调制器过载
EN

Ethereum用户
提问于 2023-04-11 23:24:14
回答 1查看 33关注 0票数 3

编译此代码:

代码语言:javascript
复制
pragma solidity ^0.8.17;

contract OverloadModifier {
    uint public a = 0;
    bytes public b = 0x00;

    modifier m(uint _a) { _; }
    modifier m(bytes _b) { _; }

    function fa () public m(a) {}
    function fb () public m(b) {}
}

抛出此错误:

代码语言:javascript
复制
DeclarationError: Identifier already declared.
 --> OverloadModifier.sol:9:5:
  |
9 |     modifier m(bytes _b) { _; }
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The previous declaration is here:
 --> OverloadModifier.sol:8:5:
  |
8 |     modifier m(uint _a) { _; }
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^

假设修饰符在技术上是“函数”,那么又有什么可以防止它们超载呢?让它们超载不是有用的吗?

EN

回答 1

Ethereum用户

发布于 2023-04-12 04:06:07

从技术上讲,您可以重载一个修饰符,但这会使代码难以理解,因为修饰符的唯一目的是成为一个独立的函数,可以多次重用它来检查类似的条件。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/148831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档