solidity语言9

it2022-05-05  245

solidity语言9

输入参数

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)(); } } info函数必须使用payable修饰符

通过new建立合约

合约使用关键字new创建新合约 pragma solidity ^0.4.0; contract D { uint x; function D(uint a) public payable { x = a; } } contract C { D d = new D(4); // will be executed as part of C's constructor function createD(uint arg) public { D newD = new D(arg); } function createAndEndowD(uint arg, uint amount) public payable { // Send ether along with the creation D newD = (new D).value(amount)(arg); } } posted on 2018-02-28 14:48 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/8483583.html


最新回复(0)