33-Solidity8.0-可视范围(private、internal、public 和 external )

221 阅读1分钟

private

only inside contract

只允许在合约内部调用

internal

only inside contract and child contracts

当为状态变量添加了inernal属性,仍然可以被继承,internal属性只能够被合约中的方法调用,不能够在外部被直接调用。

public

inside and outside contract

状态变量默认是public的类型,可以被继承,可以在外部与内部被调用

external

onlu from outside contract

状态变量没有external属性,但是函数有。

当为函数加上external属性后,意味着合约只能够在外部被调用,不能够在内部被调用。

合约内如果想要访问外部函数,可以用 this.+函数名(不建议,会消耗很多的gas)