견고성-가변 범위

지역 변수의 범위는 정의 된 함수로 제한되지만 상태 변수는 세 가지 유형의 범위를 가질 수 있습니다.

  • 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; // internal access
      return data;
   }
}
contract Caller {
   C c = new C();
   function f() public view returns (uint) {
      return c.data(); //external access
   }
}
contract D is C {
   function y() public returns (uint) {
      iData = 3; // internal access
      return iData;
   }
   function getResult() public view returns(uint){
      uint a = 1; // local variable
      uint b = 2;
      uint result = a + b;
      return storedData; //access the state variable
   }
}