solidity 04. 변수 및 데이터 타입
BlockChain,NFT,Web3.0/Solidity 2022. 1. 15. 01:32Solidity는 세 가지 유형의 변수를 지원한다
상태 변수(State Variables) - 값이 계약 저장소에 영구적으로 저장되는 변수
지역 변수(Local Variables) - 함수가 실행될 때까지 값이 존재하는 변수.
전역 변수(Global Variables ) - 블록체인에 대한 정보를 얻는 데 사용되는 전역 이름 공간에는 특수 변수
Solidity는 정적으로 유형이 지정된 언어이므로 선언 중에 상태 또는 지역 변수 유형을 지정해야 한다
선언된 각 변수에는 항상 해당 유형에 따른 기본값이 있다
"undefined" 또는 "null"이라는 개념은 없다
State Variable
값이 계약 저장소에 영구적으로 저장되는 변수입니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract MyStorage {
uint storedData; // State variable
}
Local Variables
함수가 실행될 때까지 값이 존재하는 변수.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract MyStorage {
// Defining function to show the declaration and
// scope of local variables
function getResult() public pure returns(uint){
// Initializing local variables
uint local_var1 = 1;
uint local_var2 = 2;
uint result = local_var1 + local_var2;
// Access the local variable
return result;
}
}
//View 상태 변수를 수정하지 않고 상태 변수를 읽을때 사용
//Pure 상태를 수정하거나 상태 변수를 읽지(액세스)하지 않을때 사용해야 합니다.
//일반적으로 입력 매개변수를 기반으로 작업을 수행
Global Variables
블록체인에 대한 정보를 얻는 데 사용되는 전역 이름 공간에는 특수 변수
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract MyStorage {
function getResult() public view returns(uint){
return block.number; //global variable
}
}
전역 변수 | 데이터형식 | 설명 |
block.blockhash(uint blockNumber) | bytes32 | 지정된 블록 해시 값 |
block.coinbase | address | 해당 블록 채굴자 주소 |
block.number | uint | 해당 블록의 번호 |
block.timestamp | uint | 해당 블록의 타임스탬프 |
msg.sender | address | 송금자 주소 현재 이 함수를 call한 사람 |
msg.value | uint | 송금액 |
now | uint | block.timestamp 의 별칭 |
uint (unsigned integer) 정수형 데이터 타입 : 256비트 값
uint, int, int256, uint256 모두 같은 값의 별칭이다
참고
https://docs.soliditylang.org/en/v0.8.11/types.html
'BlockChain,NFT,Web3.0 > Solidity' 카테고리의 다른 글
solidity 06. 연산자 (Operators) (0) | 2022.01.15 |
---|---|
solidity 05. 변수 스코프 (0) | 2022.01.15 |
solidity 02. 기본 문법 (0) | 2022.01.15 |
solidity 01. 개요 (0) | 2022.01.14 |
Solidity - First Application (0) | 2022.01.14 |