본문 바로가기

Solidity

Modifier란?

이번 시간에는 Modifier에 대해서 아주아주아주 쉽게 설명을 해드릴겁니다.

 

Modifier에 의미는 "수정하다" 라는 의미를 갖고 있습니다.

 

바로 코드를 통해 살펴봅시다.

 

contract lecture {

    uint256 public num;


    modifier changeNum_ {
        num = 23;
        _;
       
    }

    function changeNum() public changeNum_ {
       num = 24;
    }



}

 

여기 changeNum이라는 함수가 있습니다 

 

근데 무언가 특이한 걸 확인할 수 있습니다.

 

changNum 오른쪽에 changeNum_ 이라는걸 볼 수 있습니다.

 

그렇다라는건 이 함수는 modifier가 있다 라는걸 의미합니다.

 

modifier는 간단히 말해 기존 함수보다 더 먼저 실행되는 함수라고 생각하면 됩니다.

 

그럼 만약 changeNum함수를 실행하면 Modifier 함수가 먼저 실행되고

num을 23으로 바꿔주고 있습니다.

그 다음 _; << 이게 뭘까요? 

 

_;   << 이거는 기존의 함수를 실행한다 라는 의미입니다 여기서 기존의 함수는 

modifier를 붙여준 함수 즉 여기선 changNum이라는 함수를 의미하겠군요.

 

다시 num을 23으로 바꿔주고 

 

_;함수를 만나서 changNum함수로 이동하게 되는데 

 

changNum함수는  num을 24로 바꿔주고 있습니다.

 

배포를 통해 한번 확인해봅시다.

 

 

 

(배포 후)

num 값이 24로 바뀐 걸 알 수 있습니다.

 

 

이렇듯 오늘은 modifier에 대해서 알아봤습니다.

오늘도 유익한 글이 되셨으면 좋겠습니다.

 

 

 

Better than Yesterday 
                                            -김태양-



 

'Solidity' 카테고리의 다른 글

balance 와 msg.sender란?  (4) 2023.10.23
이더를 보내는 함수(send,transfer) feat. (payable,msg.value)  (2) 2023.10.22
에러 핸들러란? (assert, revert, require)  (4) 2023.10.22
mapping이란?  (1) 2023.10.21
event란?  (1) 2023.10.21