2. 변수, 데이터 타입, 함수
Solidity는 C++이나 JavaScript와 유사하지만, 이더리움 환경의 특성상 데이터 타입과 상태 변수 처리에 있어 중요한 차이점이 있습니다.
2.1. 주요 데이터 타입
- uint (unsigned integer): 부호 없는 정수.
uint8,uint256등이 있으며,uint는uint256의 별칭입니다. - bool: 참/거짓 값.
- address: 이더리움 주소 (20바이트). 이더를 전송하거나 다른 계약과 상호작용하는 데 사용됩니다.
2.2. 상태 변수 및 로컬 변수
상태 변수는 블록체인에 영구적으로 저장되며 (Storage), 로컬 변수는 함수 실행 중에만 존재합니다 (Memory/Stack).
contract DataTypes {
uint256 public balance = 100; // 상태 변수 (Storage)
function checkBalance() public view returns (uint256) {
uint256 temporaryValue = 5; // 로컬 변수 (Stack)
return balance + temporaryValue;
}
}
2.3. 함수 가시성
함수에는 네 가지 가시성 키워드가 있습니다: external, public, internal, private.
- public: 누구나 호출 가능 (내부, 외부).
- private: 계약 내부에서만 호출 가능.
- internal: 계약 및 상속된 계약에서 호출 가능.
- external: 외부 트랜잭션에서만 호출 가능 (내부 호출 불가).