【Solidity】public internal private external 方法修饰符
- public:在任何地方都能调用
- internal:只有内部或子contact才能调用
- private:只有内部才能调用
- external:只有外部才能调用,合约本身也不能调用
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; contract PublicPrivateInternalExternalExample{ uint private age = 10; //任何地方都可以调用该方法 function getAgeWithPublic() public view returns(uint){ return age; } //只能在该合约类里调用该方法 function getAgeWithPrivate() private view returns(uint){ return age; } //只能在该合约类里或继承该类的子类能调用该方法 function getAgeWithInternal() internal view returns(uint){ return age; } //只能外部调用该方法,通常是以接口的形式供外部调用 function getAgeWithExternal() external view returns(uint){ return age; } function callFunction() public view returns(uint){ return getAgeWithPrivate(); } }
Facebook评论