Solidity 문법 - (6) view와 pure
2023. 5. 29. 17:21ㆍBlockChain/Solidity 깨부수기 ( 유투브 강의 )
목차 |
1. view와 pure |
2. view와 pure의 예제 코드 |
1. view와 pure
솔리디티에는 함수에 상태 변경 가능성을 나타내는 키워드를 적을 수 있다.
view
함수(function) 밖의 변수들을 읽을 수 있으나 변경이 불가능하다.
pure
함수(function) 밖의 변수들을 읽을 수 없고, 변경도 불가능하다.
아무것도 적지 않을 경우
함수(function) 밖의 변수들을 읽을 수 있고, 변경도 가능하다.
2. view와 pure의 예제 코드
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract State {
uint256 public a = 1;
function stateA () public view returns(uint256) {
return a + 2;
}
function stateB () public pure returns(uint256) {
uint256 b = 4;
return b + 2;
}
function stateChangeA () public returns(uint256) {
a = 13;
return a;
}
}
stateA는 view로 작성되었으므로, 함수밖의 변수인 a를 읽을 수 있다.
코드 상에서는 a에 2를 더해 변경하는 코드를 적었지만, 실행해도 a는 변경이 되지 않는다.
state라는 변수에 인스턴스를 생성하여 담았다.
state.a()를 이용해서 변수 a를 출력했을 때 바이너리로 1을 나타내고,
state.stateA()를 실행하였을 땐 1에 2를 더한 3을 나타낸다.
하지만, 다시 state.a()를 출력했을 때 3이 아닌 1이 출력되는 것을 볼 수 있다.
그럼 아무것도 적히지 않은 stateChangeA를 실행하면 a가 바뀌는지 실행해보자.
변수 a의 값이 13으로 바뀐것을 알 수 있다.
'BlockChain > Solidity 깨부수기 ( 유투브 강의 )' 카테고리의 다른 글
Solidity 문법 - (8) 인스턴스의 생성과 사용 (0) | 2023.05.29 |
---|---|
Solidity 문법 - (7) 저장방식 (0) | 2023.05.29 |
Solidity 문법 - (5) 접근 제한자 (0) | 2023.05.29 |
Solidity 문법 - (4) 함수의 정의 (0) | 2023.05.29 |
Solidity 문법 - (3) 단위 표현 (0) | 2023.05.29 |