견고성-변수
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 변수 이름은 대소 문자를 구분합니다. 예를 들어 이름과 이름은 서로 다른 두 변수입니다.