728x90
반응형
SMALL
솔리디티의 함수 제어자는 스마트 컨트랙트의 함수에 대한 사용 조건을 지정하거나, 함수 호출 전후에 공통적인 로직을 구현하는 데 사용됩니다. 함수 제어자는 코드의 중복을 줄이고 가독성을 향상시키는데 도움이 됩니다. 이 글에서는 함수 제어자의 작성 및 사용 방법에 대해 알아봅시다.
함수 제어자 선언
함수 제어자는 modifier 키워드를 사용하여 선언하며, 제어자의 로직에서 원래 함수의 실행 위치를 표시하는 _;를 사용합니다.
pragma solidity ^0.8.0;
contract ModifierExample {
address public owner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "Only the owner can call this function.");
_;
}
}
함수 제어자 사용
함수에 제어자를 적용하려면 함수 선언 후에 제어자의 이름을 명시합니다. 여러 개의 제어자를 동시에 사용할 수도 있습니다.
pragma solidity ^0.8.0;
contract ModifierUsageExample {
address public owner;
uint public value;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "Only the owner can call this function.");
_;
}
function setValue(uint _value) public onlyOwner {
value = _value;
}
}
함수 제어자에 매개변수 전달
함수 제어자는 매개변수를 받을 수 있습니다. 이를 통해 제어자의 로직에 대한 유연성을 높일 수 있습니다.
pragma solidity ^0.8.0;
contract ModifierWithArgumentsExample {
uint public minValue;
constructor(uint _minValue) {
minValue = _minValue;
}
modifier greaterThanMinValue(uint _value) {
require(_value > minValue, "Value must be greater than the minimum value.");
_;
}
function doSomething(uint _value) public greaterThanMinValue(_value) {
// 함수 로직
}
}
728x90
반응형
LIST
'블록체인 (Block Chain) > 이더리움' 카테고리의 다른 글
[솔리디티 입문] 8. 이벤트 (0) | 2023.06.16 |
---|---|
[솔리디티 입문] 7. 변수 선언, 초기화 및 할당 (0) | 2023.06.16 |
[솔리디티 입문] 5. 함수 (0) | 2023.06.16 |
[솔리디티 입문] 4. 상태 변수 (0) | 2023.06.16 |
[솔리디티 입문] 3. 글로벌 네임스페이스 (0) | 2023.06.16 |