在Solidity中,public
、private
、internal
和external
是四个不同的访问修饰符,用于限定函数或状态变量的可见性和可访问性。
一、public
public
修饰符表示函数或状态变量可以从合约内部和外部进行访问。这意味着其他合约和外部地址都可以调用公共函数或读取公共状态变量。public
修饰符生成了一个函数的外部接口。申明模版:
uint public value;
function name() public {}
二、private
private
修饰符表示函数或状态变量仅能在当前合约内部访问。私有函数和状态变量对于外部地址是不可见的,只能在合约内的其他函数中使用。私有函数对于代码封装和内部逻辑的隐藏非常有用。申明模版:
uint private value;
funciton name() private{}
三、internal
internal
修饰符表示函数或状态变量可以在当前合约内部以及继承合约中进行访问。与私有修饰符不同,internal
修饰符允许继承的合约访问被修饰的函数或状态变量。对于需要在合约继承链中共享的内部逻辑,使用internal
修饰符是有用的。申明模版:
uint internal value;
function name() internal {}