Solidity 函数

函数的定义

  • function:function关键字声明合约中的可执行单元
  • 函数的完整定义:
function (funcName) (<parameter types>) {public|external|internal|private} [constant|view|payable] [returns (<return types>)]

函数的调用方式

  • internal(内部调用方式):就是直接使用函数名去调用函数

pragma solidity ^0.4.24;

contract testInternal {
    function A(){
        this.balance;
    }
    
    function B(){
        A();
    }
}
  • external(外部调用方式):就是使用合约实例名.函数名的方式去调用函数。

(虽然当前合约A和B的代码放在一起,但部署到网络上后,它们是两个完全独立的合约,它们之间的方法调用是通过消息调用。)

pragma solidity ^0.4.24;

contract test1{
    function A() external{        
    }
}
contract test2{
    function B(test1 a){
        a.A();
    }
}
  • this:在合约的调用函数前加this.来强制以external方式的调用。
pragma solidity ^0.4.24;

contract Test {
    function A() external {
        
    }   
    function B(){
        this.A();
    }      
}

函数可见性

四种函数可见性::external,public,internal,private

  • external:(外部函数)
    • 声明为external的函数可以从其他合约来进行调用,所以声明external的函数是合约对外接口的一部分
    • 不能使用internal的方式进行调用,如果以internal方式调用报异常:Error: Undeclared identifier.
    • 在接受大的数据数组是性能更好
  • public:(公共函数)
    • 函数声明默认为public
    • public的函数既允许以internal的方式调用,也允许以external的方式调用
    • public的函数允许被外部合约访问,是合约对外接口的一部分。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值