solidity部分修饰符的使用以及合约的部分调用方法
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);
}
}
相关文章
- 逐向双碳:东数西算中的绿色需求与竞争焦点
- 干掉谷歌,ChatGPT能行吗?
- CDN 为什么这么设计?
- SAP 发布2022年第二季度财报
- 从多云到超级云:自动化掌控一切
- Aruba:新型工作模式带来巨大挑战 传统网络基础设施已无法应对
- 让云中安全成为企业创新助推器 构建“洋葱”式多层防护
- 通讯协议 I2C 子系统之 I2C Driver
- Docker小白的福音:Docker命令清单,干就完了
- 容器受到攻击时该如何应对:事件响应计划
- 这才是Excel未来的样子,口喊求和什么的弱爆了
- 云原生之Docker容器跨主机指定IP通信
- 后CentOS时代,社区将如何发展和创新
- 暑假学开源赢奖品,快来参加2022红帽IT职业综合技能大赛
- 博睿数据发布一体化智能可观测平台,“DNA+”时代已来
- 七张图理解 Dockerfiles vs Buildpacks,二者如何选择?
- 2021 年是蜂窝物联网模块行业爆发的一年
- K8S 无状态和有状态,初学者指南!
- 云计算与数字化转型的关系,终于有人讲明白了
- LoRaWAN 是蜂窝物联网挑战的解决方案吗?