【Solidity学习笔记】外部函数的调用

2018-03-30  本文已影响1383人  海阳之新

3.8 外部函数的调用

在Solidity中,有两种函数调用:内部函数调用和外部函数调用。
内部函数调用是指一个函数在同一个合约中调用另一个函数。
外部函数调用是指一个函数调用另一个合约的函数。
示例如下:

pragma solidity ^0.4.21;

contract sample1 {
    //payable是一个内置的函数修改器
    //如果另一个合约在调用方法时发送以太,则需要这个修改器。
    function sample1(int b) payable
    {
        a = b;
    }

    function assign(int c)
    {
        a = c;
    }

    function makePayment(int d) payable
    {
        a = d;
    }
}


contract sample2 {
    function hello() {

    }

    function sample2(address addressOfContract)  {
        //当创建sample1合约对象时,发送12 wei
        sample1 s = (new sample1).value(12)(23);
        s.makePayment(22);
        //发送以太也是的
        s.makePayment.value(45)(12);
        //指定要使用的gas数
        s.makePayment.gas(895)(12);
        //发送Ether,并指定gas
        s.makePayment.value(4).gas(900)(12);
        //使用this关键字进行的调用称为外部调用。在函数中,this关键字代表当前合约实例。
        //如果是hello(),则是内部调用
        this.hello();
        //指定一个已经部署好的合约
        sample1 s2 = sample1(addressOfContract);
        s2.makePayment(112);
    }

}
上一篇 下一篇

猜你喜欢

热点阅读