Solidity-函数

作者: TryBlockchain | 来源:发表于2016-11-27 18:48 被阅读473次

原文:http://solidity.readthedocs.io/en/develop/types.html#function-types

代码运行环境:https://ethereum.github.io/browser-solidity/

函数类型

函数类型是函数的类型。函数类型可以被赋值,作为参数和返回结果,函数可分为Internalexternal函数。

内部函数(Internal)

在当前合约内被调用,可允许继承。

外部函数(External)

由地址和方法签名组成。可作为参数传给外部函数调用,或由函数调用返回。

完整的函数的定义如下:

function (<parameter types>) {internal(默认)|external} [constant] [payable] [returns (<return types>)]

函数类型的一些特点:

如果函数不需返回内容,则需去除returns关键字

默认的函数类型是internal的。

pragma solidity ^0.4.0;

contract Test{
    //default internal
    function noParameter() returns (uint){}
    
    //nothing to return
    function noReturn1(uint x) {}
    
    //if no return,must remove returns keywords
    //function noReturn2(uint x) returns {} 
    
}

调用上的特点:

this.是调用的external的方法。直接调用的话是通过内部调用。

pragma solidity ^0.4.5;

contract Test{
    function internalFunc() internal{}
    
    function externalFunc() external{}
    
    function callFunc(){
        //call from inner
        internalFunc();
        
        //can't call from internal
        //externalFunc();
        
        //can't call from external
        //this.internalFunc();
        
        this.externalFunc();
    }
}

备注:
如果函数未初始化,调用会引发异常;删除一个函数后,调用它也会触发一个异常。

如果在外部调用external的函数,函数会被打包成一个紧跟在地址后的bytes24的内容。

相关文章

  • Solidity-函数

    原文:http://solidity.readthedocs.io/en/develop/types.html#f...

  • Solidity-函数可见性与修饰符

    Solidity提供了四种可见性 . 分别是external,public,internal,private . ...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

网友评论

    本文标题:Solidity-函数

    本文链接:https://www.haomeiwen.com/subject/dbsnpttx.html