solidity 04. 변수 및 데이터 타입

BlockChain,NFT,Web3.0/Solidity 2022. 1. 15. 01:32
반응형

Solidity는 세 가지 유형의 변수를 지원한다 

상태 변수(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
: