局部变量的作用域仅限于定义它们的函数,但是状态变量可以有三种作用域类型。
示例
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; // 访问状态变量 } }
原文:https://www.cnblogs.com/huanghanyu/p/13182807.html