블록체인 학습
0 XP

실습: 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
}

이제 이 세 종류를 직접 한 컨트랙트에 구현해봅시다.

해야 할 일:

  1. Calculator 컨트랙트 안에 result 라는 uint256 public 상태 변수를 선언하세요.
  2. add 함수를 작성하세요. uint256 a, uint256 b 를 받아 합을 result 에 저장합니다. (상태 변경 함수)
  3. getResult 함수를 작성하세요. public view 로 result 를 반환합니다. (view)
  4. double 함수를 작성하세요. public pure 로 uint256 x 를 받아 x * 2 를 반환합니다. (pure)

add 는 상태를 바꾸므로 키워드 없음, getResult 는 상태를 읽으므로 view, double 은 상태와 무관하므로 pure 입니다.

완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.