مشخصات مقاله
-
0.0
-
723
-
0
-
0
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 قرارداد اصلی منتقل نکند، قرارداد مشتق شده انتزاعی خواهد شد.