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);
}
}
网友评论