玩转solidity --05可见性和访问修饰符
2018-04-11 本文已影响5人
DavieKong
因为Solidity有两种函数调用
内部调用:不创建一个真实的EVM调用(也称为“消息调用”);
外部的调用:要创建一个真实的EMV调用,
有四种的函数和状态变量的可见性。
函数可以被定义为external, public, internal or private,默认是 public。状态变量默认是 internal, 不可以使。
external: 外部函数是合约接口的一部分,这意味着它们可以从其他合约调用, 也可以通过事务调用。外部函数f不能被内部调用(即 f()不执行,但this.f()执行)。外部函数,当他们接收大数组时,更有效。
public:公共函数是合约接口的一部分,可以通过内部调用或通过消息调用。对公共状态变量而言,会有的自动访问限制符的函数生成(见下文)。
internal:这些函数和状态变量只能内部访问(即在当前合约或由它派生的合约),而不使用(关键字)this 。
private:私有函数和状态变量仅仅在定义该合约中可见, 在派生的合约中不可见。