Solidity函数重载行为

Solidity function overloading behavior

我的合同是这样的,问题是为什么 foo(uint256 n) 不工作(没有价值 return)。如果合同只有 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;
}
}

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

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