pure view
450
9 asked
function balance1(address _a) public view returns (uint256) {
return _a.balance;
}
function fun1(uint256 _a) public pure returns (uint256) {
if (_a == 3) {
return 555;
}
return 111;
}
안녕하세요 여기 두개 함수에서 둘다 외부에서 _a를 받아오는것으로 보이는데 왜 위에는 view를 쓰고
밑에는 pure 를 쓰는건지 잘 모르겠습니다.
Answer 1
0
안녕하세요 제원님 :)
function balance1(address _a) public view returns (uint256) {
return _a.balance;
}
function fun1(uint256 _a) public pure returns (uint256) {
if (_a == 3) {
return 555;
}
return 111;
}두함수를 보시면, balance1(address _a)와 fun1(uint256 _a) 이렇게 되어있죠,
즉 변수 _a는 함수의 파라메터에 최초로 정의된 것 알 수가 있습니다.
변수 _a가 파라메터로 정의됬다는 뜻은 함수 내부에서만 사용이 가능한 로컬변수 라고 생각할 수 있습니다. 즉 _a를 함수 밖으로 가져가서 사용하지 못 하겠죠
자 그러면, pure와 view는 무엇일까요 ?
pure와 view는 데이터를 저장하지 않을 때 사용되는 모디파이어 입니다.
두 함수에서 볼 수 있듯이, 함수 밖의 변수에 데이터를 따로 저장하지 않고 있죠?
자 그러면 pure와 view의 차이점은 무엇일까요?
일단 balance1(address _a)의 view 부터 보겠습니다.
view 는 함수의 밖에 있는 데이터 값을 읽어 올 때 사용합니다.
_a 는 함수 내부에 정의된 로컬변수 인데, 어떻게 외부의 값을 읽어와서 view라고 표시한걸까요?
_a는 주소형 타입 address 인것을 알 수 있습니다.
주소형 타입의 경우 멤버변수로 balance를 조회할 수 있습니다.
(balance는 현재 사용중인 블록체인의 메인 코인의 잔액을 나타냅니다)
즉, _a는 로컬 변수지만, 주소형이기에, 멤버변수인 balance라는것을 조회하기에 view를 쓴것을 알 수 있습니다.
이와 반대로,
fun1(uint256 _a)의 pure는 uint인 정수형 타입이며, 밖에서 읽어 들여오는게 없죠
그렇기 때문에 pure를 사용한것을 알 수 있습니다.
정리하자면,
pure와 view는 함수 밖의 변수의 데이터를 저장하지 않을 때, 함수에 적용한다.
view는 함수 밖의 변수의 데이터를 저장하지 않을 때, 함수 밖의 변수의 값을 읽어 올 때, 함수에 적용한다.
pure는 함수 밖의 변수의 데이터를 저장하지 않을 때, 함수 밖의 변수의 값을 읽어 오지않을 때 함수에. 적용한다.
감사합니다 :)
2025년으로 업데이트된 이더리움 마스터링 강의 내용에 대한 문의
0
51
2
강의자료 요청드립니다.
0
47
1
실습하는 영상은 없는 건가요?
0
78
3
LAYER2
0
92
1
Web3.js1
0
125
2
컴파일 및 배포
0
175
1
컴파일 및 배포
0
190
4
rinkeby testnet 사용
0
134
1
강의 업데이트 문의
1
498
1
fallback
1
443
1
SafeMath 함수
1
560
1
솔리디티
1
445
1
안녕하세요 강사님 질문이 있습니다
1
312
1
function 매개변수에 관한 질문이 있습니다
1
326
2
가스비 질문이 있습니다
1
357
2
Ownable에 대해서 질문이 있습니다
1
350
1
ERC20과 프론트엔드연결 지갑 변경 관련 질문 입니다!
1
367
2
ERC20과 프론트엔드 연결 테스트 코드 질문입니다.
1
215
1
migration 질문
0
560
1
Chai와 Chai BN강의 부분이 50분 강의로 되어 있습니다.
0
231
1
강의가 일부분 누락되어 있습니다(해결)
0
226
1
truffle react box 질문입니다
0
309
1
expect 테스트가 정상적으로 동작하지 않습니다
1
192
1
솔리디티 깨부수기 강의 순서
1
198
1

