zoukankan      html  css  js  c++  java
  • 区块链入门到实战(35)之Solidity – 变量作用域

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

    • 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; // 访问状态变量
       }
    }
  • 相关阅读:
    学习笔记
    .net $&替换正则查找到的内容
    sql 常用日期函数
    2010学习计划
    优化存储过程
    sql server 标量值函数
    job88数据库操作
    .net 调用有返回值的存储过程
    GridView 18种操作
    SQLite的局限性
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13182807.html
Copyright © 2011-2022 走看看