Menu
Coddy logo textTech

상태 읽기 및 쓰기

Coddy Solidity 여정의 기초 섹션에 포함된 레슨. 53개 중 27번째.

view 함수는 컨트랙트 상태를 읽을 수 있지만 변경할 수는 없습니다. 상태를 쓰는 함수에는 view 또는 pure를 지정할 수 없습니다. 값을 읽는 getter와 값을 변경하는 setter를 분리하여 각 함수의 목적을 명확하게 만드세요.

다음 내용을 컨트랙트 범위에서 선언하세요.

uint256 stored;
function setValue(uint256 n) internal {
    stored = n;
}
function readValue() internal view returns (uint256) {
    return stored;
}

제공된 main 함수 안에서 사용하세요.

setValue(18);
console.log(readValue());

setValue는 공유 저장 변수를 기록합니다. readValue는 해당 변수를 변경하지 않고 반환하므로 view입니다. main도 setValue를 호출하여 간접적으로 기록하므로, 헤더에 view 또는 pure 수정자가 없습니다.

컨트랙트 상태를 기록하는 함수에는 view를 지정할 수 없습니다.

challenge icon

챌린지

쉬움

상태 level, 세터 setLevel, 뷰 게터 getLevel을 선언하세요. main은 level을 전달된 nextLevel로 설정한 다음, 게터의 결과를 출력해야 합니다.

테스트는 다음 순서로 main에 인수를 전달합니다: uint256 nextLevel. 각 테스트는 새로운 컨트랙트 상태에서 시작합니다.

요청된 출력을 위해 console.log를 사용하세요. 요청된 값만 한 줄에 하나씩 출력하고, 과제에서 지정하지 않은 추가 레이블은 포함하지 마세요.

REQUIRED OUTPUT FORMAT: [Your translated content here]

직접 해보기

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 nextLevel) external  {
        // 여기에 솔루션을 작성하세요.
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: Solidity 플레이그라운드