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

Constructor در سالیدیتی

Constructor یک تابع ویژه است که با استفاده از کلمه کلیدی Constructor ایجاد می شود. Constructor یک تابع اختیاری است و برای مقداردهی اولیه متغیرهای State در قرارداد استفاده می شود. در ادامه ویژگی های کلیدی یک تابع سازنده آورده شده است :

  • یک قرارداد می تواند فقط یک Constructor داشته باشد.
  • یک کد Constructor زمانی که یک قرارداد ایجاد می شود، یک بار اجرا می شود و برای شروع State قرارداد استفاده می شود.
  • پس از اجرای کد Constructor، کد نهایی بر روی بلاکچین مستقر می شود. این کد شامل توابع عمومی و کدهای قابل دسترسی از طریق توابع عمومی است. کد Constructor یا هر روش داخلی که فقط توسط Constructor استفاده می شود در کد نهایی موجود نیست.
  • یک Constructor می تواند هم عمومی و هم داخلی باشد.
  • یک Constructor داخلی قرارداد را به صورت چکیده علامت گذاری می کند.
  • در صورت عدم تعریف Constructor ،Constructor پیش فرض در قرارداد حضور دارد.
    pragma solidity ^0.5.0;
    
    contract Test {
       constructor() public {}
    }
    
  • در صورتی که قرارداد پایه Constructor استدلال داشته باشد، هر قراردادی باید آنها را تصویب کند.
  • Constructor پایه را می توان مستقیما با استفاده از روش زیر راه اندازی کرد.
    pragma solidity ^0.5.0;
    
    contract Base {
       uint data;
       constructor(uint _data) public {
          data = _data;   
       }
    }
    contract Derived is Base (5) {
       constructor() public {}
    }
    
  • تابع سازنده پایه را می توان به طور غیرمستقیم با استفاده از روش زیر مقداردهی کرد.
    pragma solidity ^0.5.0;
    
    contract Base {
       uint data;
       constructor(uint _data) public {
          data = _data;   
       }
    }
    contract Derived is Base {
       constructor(uint _info) Base(_info * _info) public {}
    }
    
  • راه های مستقیم و غیرمستقیم برای مقداردهی اولیه Constructor قرارداد پایه مجاز نیست.
  • اگر قرارداد مشتق شده استدلال ها را به Constructor قرارداد اصلی منتقل نکند، قرارداد مشتق شده انتزاعی خواهد شد.
1402/01/22 723
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

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