실습: view·pure 종합
지금까지 배운 세 가지 상태변경성을 한 컨트랙트에 모아 정리해봅시다. 함수는 상태와의 관계에 따라 키워드가 달라집니다.
- 상태 변경 함수 (키워드 없음): 상태 변수에 값을 씁니다. 트랜잭션이 필요하고 가스가 듭니다.
view함수: 상태 변수를 읽기만 합니다. 단독 조회 시 가스가 들지 않습니다.pure함수: 상태와 무관하게 입력값만으로 계산합니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Counter {
uint256 public total;
function addToTotal(uint256 x) public { total += x; } // 상태 변경 → 키워드 없음
function getTotal() public view returns (uint256) { return total; } // 읽기 → view
function triple(uint256 x) public pure returns (uint256) { return x * 3; } // 입력만 → pure
}이제 이 세 종류를 직접 한 컨트랙트에 구현해봅시다.
해야 할 일:
Calculator컨트랙트 안에result라는uint256public 상태 변수를 선언하세요.add함수를 작성하세요.uint256 a, uint256 b를 받아 합을result에 저장합니다. (상태 변경 함수)getResult함수를 작성하세요.public view로result를 반환합니다. (view)double함수를 작성하세요.public pure로uint256 x를 받아x * 2를 반환합니다. (pure)
add 는 상태를 바꾸므로 키워드 없음, getResult 는 상태를 읽으므로 view, double 은 상태와 무관하므로 pure 입니다.
완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.