输入参数
pragma solidity ^0.4.16;
contract Simple {
function taker(uint _a, uint _b) public pure {
// do something with _a and _b.
}
}
输出参数
pragma solidity ^0.4.16;
contract Simple {
function arithmetics(uint _a, uint _b) public pure returns (uint o_sum, uint o_product) {
o_sum = _a + _b;
o_product = _a * _b;
}
}
关键字returns,返回参数如果没有,则返回0
返回多个值
return (v0, v1, ..., vn),函数的输出参数必须匹配同样数量参数
内部函数调用
pragma solidity ^0.4.16;
contract C {
function g(uint a) public pure returns (uint ret) { return f(); }
function f() internal pure returns (uint ret) { return g(7) + f(); }
}
外部函数调用
表达式 this.g(8), c.g(2)
当调用其他合约的函数,调用的转帐wei,gas使用.value() 和 .gas()
pragma solidity ^0.4.0;
contract InfoFeed {
function info() public payable returns (uint ret) { return 42; }
}
contract Consumer {
InfoFeed feed;
function setFeed(address addr) public { feed = InfoFeed(addr); }
function callFeed() public { feed.info.value(10).gas(800)(); }
}