이번 시간에는 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 |