[블체스 Part.3] 230515

이현진·2023년 5월 17일
0

BlockChain School

목록 보기
16/20

require

if문과의 차이

👉 if문은 거래가 끝까지 가는 반면, require는 거래를 마무리하지 않는다.
👉 require는 내부에 조건문만 들어가며, 가스비를 아낄 수 있다.

function Require1(uint _n) public pure returns(uint) {
        require(_n<10, "input should be lower than 10"); // require(조건문, "만족하지 않을 시의 메세지")
        return _n*3;
    }

constructor

👉 생성자
👉 계약 생성 시 실행되며, 하나의 컨트랙트에 하나의 생성자만 선언 가능
👉 변하면 안되는 것들을 넣을 때 사용

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;
    }
}

modifier

👉 제어자
👉 함수가 실행되기 전 조건에 맞는지 확인하고 함수가 실행되게 한다.
👉 함수를 보조해주는 역할
👉 _ 의 위치가 중요 (함수가 실행되는 시점)

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;
    }
}
profile
https://github.com/lhjbg0821

0개의 댓글