首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果空函数未标记为纯函数,编译器将不会显示警告

如果空函数未标记为纯函数,编译器将不会显示警告
EN

Ethereum用户
提问于 2023-04-12 21:53:09
回答 1查看 14关注 0票数 1

当编译一个函数而不将其状态可变标记为pure时,编译器将显示以下警告:

代码语言:javascript
复制
Warning: Function state mutability can be restricted to pure

例如:

代码语言:javascript
复制
contract MyContract {
    function foo() public {
        1 + 2;
    }
} 

正如预期的那样,编译器显示

代码语言:javascript
复制
    Warning: Function state mutability can be restricted to pure
        function foo() public {
        ^ (Relevant source part starts here and spans across multiple lines).

如果函数的主体是空的,编译器就不会显示警告。例如:

代码语言:javascript
复制
contract MyContract {
    function foo() public {
    }
} 

在这里,编译器不会像预期的那样显示警告。为什么会这样呢?

测试时使用的版本是0.5.80.8.7

EN

回答 1

Ethereum用户

发布于 2023-04-12 23:06:53

编译器不会为您的空函数显示任何警告,因为它无法知道您的意图。如果您添加了一个返回,这应该是不同的。

空函数既不与任何状态交互,也不执行任何计算,所以这就是为什么编译器没有建议任何特定的状态可变限制,比如pureview

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

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

复制
相关文章

相似问题

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