2017-07-08 3 views

答えて

7

モディファイアでは、追加の機能をメソッドにラップすることができるため、OOPのデコレータパターンに似ています。

修飾子は通常、スマートコントラクトで使用され、特定の条件が満たされていることを確認してから、そのメソッドの残りのコードを実行します。

例えば、isOwnerは、多くの場合、メソッドの呼び出し側は契約の所有者であることを確認するために使用されます。

modifier isOwner() { 
    if (msg.sender != owner) { 
     throw; 
    } 

    _; // continue executing rest of method body 
} 

doSomething() isOwner { 
    // will first check if caller is owner 

    // code 
} 

あなたはまた、あなたの手続きを合理化するために、複数の修飾子を積み重ねることができます。

enum State { Created, Locked, Inactive } 

modifier isState(State _state) { 
    require(state == _state); 

    _; // run rest of code 
} 

modifier cleanUp() { 
    _; // finish running rest of method body 

    // clean up code 
} 

doSomething() isOwner isState(State.Created) cleanUp { 
    // code 
} 

修飾子は、宣言的および判読可能な方法で発生しているアクションを表します。

関連する問題