solidi文档--函数可见性

solidity对函数和状态变量提供了四中可见性,分别为external, public, internal, private,对函数而言默认值为public,对状态变量而言不可能是external(不会有人专门在当前合约中定义一个变量给外部合约用而不允许当前合约使用)。下面将具体介绍这四种可见性。

1. external

外部函数是合约接口的一部分,这意味着它们可以从其他合约或者交易调用,外部函数不允许内部调用当时调用,否则会报错。如果非要在当前和月内调用,可以使用强制外部调用( this.f() )的方式执行。外部函数在接收打得数组数据的时候更加有效。

2. public

公开函数是合约接口的一部分,既允许以internal的方式调用,也允许以external的方式调用。函数声明默认其可见性为public。

3. internal

internal声明的函数或者状态变量只能通过内部访问,如当前合约内的函数、引入的库函数、继承的合约的函数等,需要注意的是不能用前缀this.访问内部函数,因为这是强制外部访问的方式。

4. private

private声明的函数和状态变量仅在定义的合约中可见,其他无论是外部合约还是派生的子合约都无权调用。

你可能感兴趣的:(区块链,智能合约,solidity)