局部变量的作用域仅限于定义它们的函数,但是状态变量可以有三种作用域类型。

  • Public – 公共状态变量可以在内部访问,也可以通过消息访问。对于公共状态变量,将生成一个自动getter函数。
  • Internal – 内部状态变量只能从当前合约或其派生合约内访问。
  • Private – 私有状态变量只能从当前合约内部访问,派生合约内不能访问。

示例

pragma solidity ^0.5.0;
contract C {
uint public data = 30;
uint internal iData= 10; function x() public returns (uint) {
data = 3; // 内部访问
return data;
}
}
contract Caller {
C c = new C();
function f() public view returns (uint) {
return c.data(); // 外部访问
}
}
contract D is C {
uint storedData; // 状态变量 function y() public returns (uint) {
iData = 3; // 派生合约内部访问
return iData;
}
function getResult() public view returns(uint){
uint a = 1; // 局部变量
uint b = 2;
uint result = a + b;
return storedData; // 访问状态变量
}
}

最新文章

  1. ionic2 图片上传
  2. ubuntu下安装php memcache扩展
  3. WCF Service部署在IIS上
  4. iOS开发:JavaScriptCore.framework的简单使用--JS与OC的交互篇
  5. Cassandra安装及其简单试用
  6. 如何以非 root 用户将应用绑定到 80 端口-ssh 篇
  7. SQL SERVER递归查询
  8. YARN 命令总结
  9. MVVM探索:从ViewModel关闭Window的最佳实践
  10. Java编程的逻辑 (95) - Java 8的日期和时间API
  11. 《Java程序设计》教学进程
  12. [SQL]卸载数据库清理注册表方法regedit
  13. PAT 1004 成绩排名 (20)(代码)
  14. 干货分享:五大最适合学习AI开发的编程语言
  15. Android 读写位于SD卡上的sqlite数据库文件错误问题
  16. 函数类型(Function Types):函数类型和其他类型一样
  17. leetcode 之Linked List Cycle(24)
  18. Unity GUI自适应屏幕分辨率(一)布局自适应
  19. SheetJS & Error: Sheet names cannot exceed 31 chars
  20. js 页面图片等元素在普通元素中滚动动态加载技术

热门文章

  1. PHP is_callable() 函数
  2. maven个人配置
  3. python 把多个list合并为dataframe并输出到csv文件
  4. 实验04——java保留小数的两种方法、字符串转数值
  5. phpredis 扩展之操作 Redis,记下来记下来!
  6. time模块 random模块
  7. cryptopp使用Qt mingw编译,以及海思平台交叉编译
  8. 023_go语言中的通道
  9. “随手记”开发记录day07
  10. 久等了,你要的 Python 书籍推荐,来了