1. Variable(변수)
1. local(지역변수)
- 함수 안에 선언됨.
- 블록체인에 기록되지 않음.
2. state(상태변수)
- 함수 밖에서 선언됨.
- 블록체인에 기록됨.
3. global(전역변수)
- 블록체인에 관한 정보를 제공함.
contract Lottery is VRFConsumerBase, Ownable {
//상태 변수 : 블록에 기록됨.
address payable[] public players;
address payable public recentWinner;
uint256 public randomness;
uint256 public usdEntryFee;
function doSomething() public {
//지역 변수 : 블록에 기록되지 않음.
uint i = 456;
//전역 변수
uint timestamp = block.timestamp; // Current block timestamp
address sender = msg.sender; // address of the caller
}
}
2. Constants(상수)
- 수정될 수 없는 변수
- 상수로 하드코딩 된 값은 가스 비용을 절약해줌.
- 대문자로 코딩하는 것을 권장함.
contract Constants {
address public constant MY_ADDRESS = 0x777788889999AaAAbBbbCcccddDdeeeEfFFfCcCc;
uint public constant MY_UINT = 123;
}
3. immutable(불변)
- 상수와 유사함.
- Immutable 변수는 생성자 안에서 선언될 수 있으나 값이 수정될 순 없음.
4. 상태 변수 읽고 쓰기
- 상태 변수를 쓰거나 업데이트 하기 위해서는 트랜잭션이 필요함. -> 가스 비용 발생
- 트랜잭션 없이 상태 변수를 읽을 수 있음.
function get() public view returns (uint) {
return num;
}
- view 속성을 이용하여 가스 비용 없이 num 의 값을 읽을 수 있음.
'Incognito Project' 카테고리의 다른 글
[Incognito Project] 펀딩 프로젝트 제작 - 유튜브 영상 참고함. (0) | 2022.09.24 |
---|---|
[Incognito Project] 개발 환경 셋팅 (0) | 2022.09.24 |
[Incognito Project] 이더리움 2.0 전환 (0) | 2022.09.24 |
[Incognito Project] 솔리디티 문법 03 - mapping 과 msg.sender (0) | 2022.09.24 |
[Incognito Project] 솔리디티 보안 - Keccak256 함수로 난수 생성 (1) | 2022.09.24 |