mon*_*nie 6 blockchain ethereum solidity smartcontracts
目前正在阅读 Solidity 文档: https://solidity.readthedocs.io/en/develop/types.html#function-types
默认情况下,函数类型是内部的,因此可以省略内部关键字。相比之下,合约函数本身默认是公共的,只有当用作类型名称时,默认是内部的。
这对我来说没有意义。一个函数如何同时是内部函数和公共函数?
我知道internal意味着函数只能在合约内调用,也external可以在合约外调用。所以对我来说,内部是私有的,外部是公共的,但文档听起来好像它可以同时是公共和内部的?
internal/external那么,函数之间和public/private函数方面有什么区别(如果有的话) ?
小智 10
下面是四个关键字的区别:
private意味着它只能从合约内的其他函数调用
internal类似于私有的,但也可以由继承当前合约的合约调用
external只能在合约之外调用
public可以在任何地方调用,无论是内部还是外部。
在 Solidity 的术语中internal/external,还使用“两种函数调用”作为描述,而不仅仅是作为访问修饰符。
\n\n由于 Solidity 知道两种函数调用(不创建实际 EVM 调用的内部函数(也称为 \xe2\x80\x9cmessage 调用\xe2\x80\x9d)和创建实际 EVM 调用的外部函数),因此有四种类型的可见性对于函数和状态变量。
\n
| 归档时间: |
|
| 查看次数: |
5146 次 |
| 最近记录: |