View pure修饰符:
使用view与pure不需要gwei
view:不能修改链上数据只能访问
pure:不能访问链上数据,被修饰的方法里的变量只能在方法内使用
contract ViewPureExample {
uint public age;
function increaseAge() public{
age ++;
}
function GetViewAge() public view returns(uint){ //view 修饰
//age ++;// 不可修改变量
return age;
}
function GetPureAge(uint age) public pure returns(uint){ //因为pure方法 所以需要设置参数
age ++;
return age;//如果直接return会直接报错 因为pure修饰 所以不能访问方法外的变量
}
}
Public internal private external 方法修饰符:
public:任何地方都可以调用
internal:只有本sol文件调用
private:只有本合约能调用
external:只能从外部调用即合约外部
contract PublicExternalPrivateInternal {
uint age = 100;
function GetAgeWithPublic() public view returns(uint){ //外部内部都可调用
return age;
}
function GetAgeWithInternal() internal view returns(uint){ // 本sol文件调用
return age;
}
function GetAgeWithPrivate() private view returns(uint){ //本合约调用
return age;
}
function GetAgeWithExternal() external view returns(uint){ //只能外部
//调用
return age;
}
function Callfunction() public view returns(uint){
return GetAgeWithPrivate();//方法可以调用方法只要被调用的方法允许
}
}
可以自行编译后尝试调用查看输出
简单的合约调用:
contract Salary {
uint public data;
function getData() external view returns(uint){
return data;
}
function setData(uint _data) external {
data = _data;
}
}
contract Employee {
Salary salart;
constructor(){
salary = new Salary();
}
function getSalary() external view returns(uint){
return salary.getData();
}
function setSalaty(uint _data) external {
salary.setData(_data);
}
}
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!