👉 if문은 거래가 끝까지 가는 반면, require는 거래를 마무리하지 않는다.
👉 require는 내부에 조건문만 들어가며, 가스비를 아낄 수 있다.
function Require1(uint _n) public pure returns(uint) {
require(_n<10, "input should be lower than 10"); // require(조건문, "만족하지 않을 시의 메세지")
return _n*3;
}
👉 생성자
👉 계약 생성 시 실행되며, 하나의 컨트랙트에 하나의 생성자만 선언 가능
👉 변하면 안되는 것들을 넣을 때 사용
contract CONSTRUCTOR {
uint a;
uint b;
constructor() {
a = 7;
b = 4;
}
function setA() public {
a = 5;
}
function getA() public view returns(uint) {
return a;
}
function getB() public view returns(uint) {
return b;
}
}
👉 제어자
👉 함수가 실행되기 전 조건에 맞는지 확인하고 함수가 실행되게 한다.
👉 함수를 보조해주는 역할
👉 _ 의 위치가 중요 (함수가 실행되는 시점)
contract MODIFIER {
uint a;
modifier lessThanFive() {
require(a<5, "should be less than five");
_; // 함수가 실행되는 시점
}
function aPlus() public {
a++;
}
function aMinus() public {
a--;
}
function getA() public view returns(uint) {
return a;
}
function doubleA() public lessThanFive {
a = a*2;
}
function plusTen() public lessThanFive {
a += 10;
}
}