solidity语言8

输入参数

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)(); }
}
原文地址:https://www.cnblogs.com/liujitao79/p/8483582.html