کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش تغییر رفتار یک تابع در سالیدیتی

Function Modifiers برای تغییر رفتار یک تابع استفاده می شود. برای اضافه نمودن شرط به تابع می توان از یک Modifier استفاده کرد. ابتدا یک Modifier بدون پارامتر ایجاد می کنیم:

    contract Owner {
        modifier onlyOwner {
           require(msg.sender == owner);
           _;
        }
        modifier costs(uint price) {
           if (msg.value >= price) {
              _;
           }
        }
     }

بدنه تابع در جایی که نماد ویژه "_;" درج شده است. در تعریف Modifier ظاهر می شود. بنابراین اگر شرط Modifier هنگام فراخوانی این تابع برآورده شود، تابع اجرا و در غیر این صورت یک استثنا ایجاد می شود.

مثال زیر را ببینید:

pragma solidity ^0.5.0;

contract Owner {
   address owner;
   constructor() public {
      owner = msg.sender;
   }
   modifier onlyOwner {
      require(msg.sender == owner);
      _;
   }
   modifier costs(uint price) {
      if (msg.value >= price) {
         _;
      }
   }
}
contract Register is Owner {
   mapping (address => bool) registeredAddresses;
   uint price;
   constructor(uint initialPrice) public { price = initialPrice; }
   
   function register() public payable costs(price) {
      registeredAddresses[msg.sender] = true;
   }
   function changePrice(uint _price) public onlyOwner {
      price = _price;
   }
}
1402/01/15 819
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...