【问题标题】:Solidity function overloading behaviorSolidity 函数重载行为
【发布时间】:2018-08-14 09:14:50
【问题描述】:

我的合同是这样的,问题是为什么foo(uint256 n) 不起作用(没有价值回报)。如果合约只是有foo(uint256 n),它就可以工作。

contract OverloadContract {
// working
function foo(uint256 n, uint256 m) public pure returns (uint256) {
    return n + m;
}

// not working ?
function foo(uint256 n) public pure returns (uint256) {
    return n;
}

// working
function foo() public pure returns (uint256) {
    return 1;
}

// working
function foo(uint256 i, uint256 n, uint256 m) public pure returns (uint256) {
    return i + n + m;
}
}

【问题讨论】:

  • 你在 Remix 中测试这个吗?我可以在那里重现它,但是当我通过eth_call(JSON-RPC接口)直接调用该函数时,该函数工作正常。
  • 事实上,在 Remix 中,针对本地 ganache 实例进行测试,我可以在网络选项卡中看到正确的值,所以这看起来像是 UI 层中的错误。
  • 我建议提交问题:github.com/ethereum/remix-ide
  • 是的,我用 Remix-ide 写这个,谢谢@smarx,我会填一个问题

标签: ethereum solidity contract


【解决方案1】:

该错误已由 ethereum/remix#864 修复,并将与 Remix 0.7 一起提供。

链接:https://github.com/ethereum/remix-ide/issues/1460

【讨论】:

    猜你喜欢
    • 2022-12-17
    • 2022-06-10
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多