명시적 되돌리기
Coddy Solidity 여정의 기초 섹션에 포함된 레슨. 53개 중 47번째.
if 분기는 잘못된 경우를 명시적으로 거부하기 위해 revert(message)를 호출할 수 있습니다. 거부 조건을 그 반대 조건보다 읽기 쉽게 표현할 수 있을 때 유용합니다. 가드 뒤에 일반 작업을 배치하면 허용되는 입력에 대해서만 실행됩니다.
이 발췌문의 문은 제공된 main 함수 내부에서 실행됩니다.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);4는 6을 초과하지 않으므로 거부 분기를 건너뜁니다. 실행은 console 호출에 도달합니다. 명시적인 revert는 실패한 require와 마찬가지로 호출을 거부하며, 정상적인 결과를 출력하는 방법이 아닙니다.
revert는 정상적으로 계속 진행하는 대신 현재 호출을 실패로 종료합니다.
챌린지
쉬움revert를 사용하여 50 초과 값을 거부하고 유용한 메시지를 표시하세요. 허용되는 입력의 경우 50에서 값을 뺀 결과를 출력하세요. 모든 출력 테스트는 범위 내에 있습니다.
테스트는 다음 순서로 main에 인수를 전달합니다: uint256 value. 각 테스트는 새로운 컨트랙트 상태에서 시작합니다.
요청된 출력을 위해 console.log를 사용하세요. 요청된 값만 한 줄에 하나씩 출력하고, 작업에서 지정하지 않는 한 추가 레이블은 표시하지 마세요.
직접 해보기
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// 여기에 솔루션을 작성하세요.
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Solidity 플레이그라운드