首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >refund()现在是一个保留的关键字吗?

refund()现在是一个保留的关键字吗?
EN

Ethereum用户
提问于 2020-04-29 08:00:51
回答 2查看 115关注 0票数 0

使用:

代码语言:javascript
复制
solc@0.5.16
truffle@5.1.7

在我聪明的合同里

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

当我有一个函数名refund()时,我收到了以下警告消息(只是一个逗号)。当我重命名函数时,警告就会消失。

代码语言:javascript
复制
Compiling your contracts...
===========================
> Compiling .\contracts\MyCoin.sol
> Compilation warnings encountered:
,

编辑。我设法用最少的代码行进行复制。

代码语言:javascript
复制
pragma solidity ^0.5.12;
contract MyTest {
    function refund() internal {  }
    function test(uint refund) public {
        uint i = refund;
    }
}
EN

回答 2

Ethereum用户

发布于 2020-04-29 15:57:33

不,退款不是一个固定的词。

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

contract MyTest {
    function refund() internal {  }
    function test(uint refund) public {
        uint i = refund;
    }
}

solc显示的警告

代码语言:javascript
复制
Warning: This declaration shadows an existing declaration.
    function test(uint refund) public {
                  ^---------^
browser/3_Ballot.sol:6:5: The shadowed declaration is here:
    function refund() internal {  }
    ^-----------------------------^

是由具有与函数同名的变量或参数引起的。

如果将这两个名称都重命名为foobar,则会引起相同的警告。

票数 0
EN

Ethereum用户

发布于 2020-04-29 17:13:11

好吧,有一个函数参数和合同上的实际函数相同,这不是个好主意。当我将这段代码重新混合时,它会生成以下警告:

代码语言:javascript
复制
browser/sdfsdf.sol:4:19: Warning: This declaration shadows an existing declaration.
    function test(uint refund) public {
                  ^---------^
browser/sdfsdf.sol:3:5: The shadowed declaration is here:
    function refund() internal {  }
    ^-----------------------------^
}

这在我看来是合法的。我建议换一个或另一个

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

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

复制
相关文章

相似问题

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