본문 바로가기
블록체인/WEB3 개발

솔리디티 기본 문법 - 함수 제어자

by 제이제이_은재 2022. 7. 8.
반응형

 

💡솔리디티 기본 문법 - 함수 제어자(modifier)

 

비슷한 역할을 하는 코드를 모아서 만든 특별한 형태의 함수이다. 함수 선언에 modifier를 추가형 함수에 변경자를 적용할 수 있다. 

* 변경자: 함수를 실행하기 전, 요구 조건을 만족하는 지 확인하는 작업

 

변경자를 작성할 때는 _;를 사용한다. _;는 함수를 실행하는 시점을 나타내며, 변경자 코드는 _; 코드를 기준으로 실행 시점이 달라진다. _;이전의 코드는 함수가 실행되기 전에 실행되고 _; 이후의 코드는 함수 실행이 종료되고 실행된다. 다음의 changeNum 변경자는 함수를 실행하기 전, num 상태 변수의 값을 1 올리고, 함수의 실행이 완료되면 num 상태 변수의 값을 1 내린다.

 

int public num = 0;
modifier changeNum {
    num++; // 함수 실행 전 실행됨
    _; // 함수 실행
    num--; // 함수 실행 후 실행됨
}

changeNum 변경자는 다음과 같이 사용할 수 있다.

function func() public changeNum {
    if (num == 1) {
        // do something
    }
}

함수 func() 은 changeNum 을 사용하기 때문에, func() 는 changeNum 변경자의 _;를 기준으로 다음과 같이 동작한다.

 

 

이렇게 함수 변경자를 사용하면 함수를 선언적으로 사용할 수 있다는 특징이 있다.

반응형

댓글