반응형
💡솔리디티 기본 문법 - 함수 제어자(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 변경자의 _;를 기준으로 다음과 같이 동작한다.
이렇게 함수 변경자를 사용하면 함수를 선언적으로 사용할 수 있다는 특징이 있다.
반응형
'블록체인 > WEB3 개발' 카테고리의 다른 글
솔리디티 기본 문법 - 상속 및 라이브러리 (0) | 2022.07.08 |
---|---|
솔리디티 기본 문법 - 이벤트 및 에러 핸들링 (0) | 2022.07.08 |
솔리디티 기본 문법 - 함수 (0) | 2022.07.08 |
솔리디티 기본 문법 - 연산자 (0) | 2022.07.08 |
솔리디티 기본문법 - 자료형 (0) | 2022.07.08 |
댓글