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 一起发布。
我的合同是这样的,问题是为什么 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 一起发布。