函数类型(Function Types)
函数也是一种类型,且属于值类型。
可以将一个函数赋值给一个函数类型的变量。还可以将一个函数作为参数进行传递。也可以在函数调用中返回一个函数。
函数类型有两类:内部(internal)和外部(external)函数
内部(internal)函数只能在当前合约内被调用(在当前的代码块内,包括内部库函数,和继承的函数中)。
外部(external)函数由地址和函数方法签名两部分组成,可作为外部函数调用的参数,或返回值。
函数类型定义如下:
1 |
function (<parameter types>) {internal|external} [pure|constant|view|payable] [returns (<return types>)]
|
如果函数不需要返回,则省去returns ()
函数类型默认是internal, 因此internal可以省去。但以此相反,合约中函数本身默认是public的, 仅仅是当作类型名使用时默认是internal的。
有两个方式访问函数,一种是直接用函数名f, 一种是this.f, 前者用于内部函数,后者用于外部函数。
如果一个函数变量没有初始化,直接调用它将会产生异常。如果delete了一个函数后调用,也会发生同样的异常。
如果外部函数类型在Solidity的上下文环境以外的地方使用,他们会被视为

本文介绍了Solidity中的函数类型,包括内部函数和外部函数的特性,以及如何通过函数类型进行值传递和调用。函数类型可以作为变量赋值,作为参数传递,甚至在函数中返回。此外,文章还探讨了函数的可见性,如public、private、internal和external的区别,并强调了未初始化或已被删除的函数变量调用的异常情况。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



