🏷 변수
변수를 선언하기 위해서는 자료형을 반드시 명시해야 한다.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >= 0.8.2 < 0.9.0;
contract Example {
//상태 변수
string public a = "solidity";
function getEx() public {
//지역 변수
uint256 b = 2;
//전역 변수
uint256 c = block.timestap;
address d = msg.sender;
}
}
🔖 지역 변수(local)
함수 안에서 선언되며 블록체인에 기록되지 않는다.
🔖 상태 변수(state)
상태 변수는 값이 컨트랙트 storage에 영구적으로 저장되는 변수이다. 함수 밖에서 선언되며 블록체인에 저장되어 영속성을 가진다. 함수 내부 어디에서든지 사용이 가능하며 가시성 지정자에 따라 변수의 접근 범위가 달라진다.
💬 가시성 지정자란?
변수나 함수의 공개 범위를 제한하는 것으로 특정 변수나 함수에 접근하려고 할 때 지정된 가시성 지정자에 의해 접근 여부가 결정된다.
- public : 외부, 내부 어디서든 접근 가능하다.
- external : 선언된 컨트랙트 외부에서만 접근 가능하다. 즉 다른 컨트랙트나 트랜잭션을 통해서 호출될 수 있다. f()는 동작하지 않지만 this.f()는 동작한다.
- private : 선언된 컨트랙트 내부에서만 접근 가능하다. 상속받은 컨트랙트에서는 접근이 불가능하다.
- internal : 선언된 컨트랙트 내부와 이를 상속받은 컨트랙트 내부에서 접근 가능하며 this를 통해 접근할 수 없다.
🔖 전역 변수(global)
블록체인에 관한 정보를 제공한다.
📚 참고
'Develop > Solidity' 카테고리의 다른 글
| [Solidity] 스마트 컨트랙트의 구조 (0) | 2023.12.20 |
|---|---|
| [Solidity] 솔리디티(Solidity)에 대해서 (0) | 2023.12.20 |