[Solidity]関数コントロール(functionmodifier)
関数コントローラ function test() external view customModifier payable {
/* ... */
}
上記定義関数の場合、external
、view
、customModifier
、payable
はいずれも関数制御者である.
1.アクセス制御者(可視修飾子)
関数がいつ、どこで呼び出されるかを制御します.
function test() external view customModifier payable {
/* ... */
}
private
契約内部の他の関数からのみ呼び出すことができます.internal
private
と同様であるが、この契約を継承する契約から呼び出すこともできる.external
契約外でしか呼び出せません.public
関数の内外で呼び出すことができます.2.ステータスコントローラ(state modifier)
ブロックチェーンとのインタラクション方法について.
view
, constant
この関数を実行しても、データは保存/変更されません.pure
この関数は、ブロックチェーンにデータを格納したり、ブロックチェーンからデータを読み込んだりしません.view
、pure
は、いずれも場外呼び出し時にガスを全く消費しない.ただし、同じパイプ内の他の関数で内部呼び出されると、ガスが消費されます.3.カスタムコントロール
コントローラを独自の論理に基づいて定義し、関数に適用することもできます.
// 메시지를 보낸 사람이 owner와 같은지 확인하는 제어자 정의
modifier onlyOwner () {
require(msg.sender == owner);
_; // _;와 항상 함께 쓰인다.
}
4.買掛管理者💰✨
関数呼び出しによってイーサネットを受信できる特殊な関数タイプを定義します.関数を実行しながら、クレジットカードアカウント(CA)に支払うことができます.
payable
を記述していない関数はイーサを送信できません.contract OnlineStore {
function buySomething() external payable {
require(msg.value == 0.001 ether);
transferThing(msg.sender);
}
}
𘥪address変数タイプの買掛金
payable
は仮想通貨のキーワードです.payable
キーワードは、関数コントロールとしてのみならず、address
タイプの変数としても使用できます.address payable
は、支払可能なアドレスタイプを意味する.address payable
型変数には、イーサを伝送できる関数send()
およびtransfer()
が内蔵されている.// owner라는 payable한 address 선언
address payable owner;
// to라는 payable한 address를 인자로 갖는 function 선언
function func(address payable to) public { /* ... */ }
📌 Referencehttps://cryptozombies.io/ko/course
Reference
この問題について([Solidity]関数コントロール(functionmodifier)), 我々は、より多くの情報をここで見つけました https://velog.io/@yooni/Solidity-함수-제어자-function-modifierテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol