견고성-변수

Solidity는 세 가지 유형의 변수를 지원합니다.

  • State Variables − 값이 계약 저장소에 영구적으로 저장되는 변수.

  • Local Variables − 함수가 실행될 때까지 값이 존재하는 변수.

  • Global Variables − 블록 체인에 대한 정보를 얻는 데 사용되는 글로벌 네임 스페이스에는 특수 변수가 있습니다.

Solidity는 정적으로 형식화 된 언어로 선언 중에 상태 또는 지역 변수 형식을 지정해야 함을 의미합니다. 선언 된 각 변수에는 항상 유형에 따라 기본값이 있습니다. "undefined"또는 "null"이라는 개념이 없습니다.

상태 변수

값이 계약 저장소에 영구적으로 저장되는 변수입니다.

pragma solidity ^0.5.0;
contract SolidityTest {
   uint storedData;      // State variable
   constructor() public {
      storedData = 10;   // Using State variable
   }
}

지역 변수

값이 정의 된 함수 내에서만 사용할 수있는 변수입니다. 함수 매개 변수는 항상 해당 함수에 로컬입니다.

pragma solidity ^0.5.0;
contract SolidityTest {
   uint storedData; // State variable
   constructor() public {
      storedData = 10;   
   }
   function getResult() public view returns(uint){
      uint a = 1; // local variable
      uint b = 2;
      uint result = a + b;
      return result; //access the local variable
   }
}

pragma solidity ^0.5.0;
contract SolidityTest {
   uint storedData; // State variable
   constructor() public {
      storedData = 10;   
   }
   function getResult() public view returns(uint){
      uint a = 1; // local variable
      uint b = 2;
      uint result = a + b;
      return storedData; //access the state variable
   }
}

Solidity First Application 장에 제공된 단계를 사용하여 위 프로그램을 실행하십시오 .

산출

0: uint256: 10

글로벌 변수

이들은 글로벌 작업 공간에 존재하는 특수 변수이며 블록 체인 및 트랜잭션 속성에 대한 정보를 제공합니다.

이름 보고
blockhash (uint blockNumber) 반환 (bytes32) 주어진 블록의 해시-현재 블록을 제외하고 가장 최근 256 개에 대해서만 작동합니다.
block.coinbase (지불 가능 주소) 현재 블록 채굴 자의 주소
block.difficulty (단위) 현재 블록 난이도
block.gaslimit (단위) 현재 블록 가스 제한
block.number (단위) 현재 블록 번호
block.timestamp (단위) 유닉스 시대 이후 현재 블록 타임 스탬프 (초)
gasleft () 반환 (uint256) 남은 가스
msg.data (바이트 calldata) 완전한 통화 데이터
msg.sender (지불 가능한 주소) 메시지 발신자 (현재 발신자)
msg.sig (bytes4) calldata (함수 식별자)의 처음 4 바이트
msg.value (단위) 메시지와 함께 보낸 wei의 수
지금 (단위) 현재 블록 타임 스탬프
tx.gasprice (단위) 거래의 가스 가격
tx.origin (지불 가능 주소) 거래 발신자

견고성 변수 이름

Solidity에서 변수 이름을 지정할 때 다음 규칙을 염두에 두십시오.

  • Solidity 예약 키워드를 변수 이름으로 사용해서는 안됩니다. 이러한 키워드는 다음 섹션에서 언급됩니다. 예를 들어, break 또는 boolean 변수 이름은 유효하지 않습니다.

  • Solidity 변수 이름은 숫자 (0-9)로 시작하지 않아야합니다. 문자 또는 밑줄 문자로 시작해야합니다. 예를 들어 123test는 잘못된 변수 이름이지만 _123test는 유효한 이름입니다.

  • Solidity 변수 이름은 대소 문자를 구분합니다. 예를 들어 이름과 이름은 서로 다른 두 변수입니다.