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

آموزش توابع Pure با سالیدیتی

توابع Pureتضمین می کنند که state را نمی خوانند یا تغییر نمی دهند. یک تابع را می توان Pure در نظر گرفت. عبارات زیر در صورت وجود در تابع برای خواندن state در نظر گرفته می شوند و کامپایلر در چنین مواردی هشدار می دهد.

  • خواندن متغیرهای State
  • دسترسی Address(This).Balance یا
    .Balance
  • دسترسی به هر یک از متغیرهای خاص بلوک Tx، Msg ( Msg.Sig و Msg.Data قابل خواندن است).
  • فراخوانی هر تابع که Pure مشخص نشده باشد.
  • استفاده از Inline Assembly That Contains Certain Opcodes

توابع Pure می توانند از توابع Revert() و Require() برای بازگشت تغییرات State در صورت بروز خطا، استفاده کنند. مثال زیر را که از یک تابع View استفاده نموده است، مشاهده نمایید:

pragma solidity ^0.5.0;

contract Test {
   function getResult() public pure returns(uint product, uint sum){
      uint a = 1; 
      uint b = 2;
      product = a * b;
      sum = a + b; 
   }
}
1402/01/15 766
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

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