</>مدرسه زیب‌موجیاد بگیر، تمرین کن، بساز
مدرسهSolidityدرس 13
درس 13 از 21 · ۴۰ دقیقه

Inheritance و library

یک مسئله واقعی را با «Inheritance و library» حل می‌کنیم و نتیجه را همان لحظه می‌بینیم.

۰امتیاز شما
نقشه این درس

بعد از این درس چه کاری می‌توانی انجام بدهی؟

  • library تابع reusable و inheritance قرارداد پایه را می‌دهد؛ پیچیدگی hierarchy باید محدود بماند.
  • کد را اجرا و نتیجه را پیش‌بینی کنی
  • یک تغییر کوچک بدهی و اثرش را توضیح بدهی
  • خطای واقعی درس را بخوانی و برطرف کنی
نکته مهم برای شروع Solidity

اگر برنامه اجرا نشد، از آخرین خط پیام خطا شروع کن؛ نام فایل و شماره خط معمولاً نزدیک‌ترین سرنخ‌اند.

چرا مهم است؟ library تابع reusable و inheritance قرارداد پایه را می‌دهد؛ پیچیدگی hierarchy باید محدود بماند.

اولین تمرین تو: مالکیت دو مرحله‌ای اضافه کن. قبل از اجرا، خروجی تازه را در یک جمله بنویس.

توضیح ساده و قدم‌به‌قدم

از یک مثال کوچک شروع کن

library تابع reusable و inheritance قرارداد پایه را می‌دهد؛ پیچیدگی hierarchy باید محدود بماند. کد زیر را در فایل «Contract.sol» خودت تایپ و اجرا کن. بعد خروجی را با انتظار درس مقایسه کن.

1

۱. نمونه را اجرا کن

پیش از اجرا خروجی را حدس بزن و سپس تفاوت را یادداشت کن.

2

۲. کد را تغییر بده

مالکیت دو مرحله‌ای اضافه کن.

3

۳. خطا را عمداً بساز

override اشتباه یا storage layout inheritance در upgrade قرارداد را آسیب می‌زند. متن خطا و شماره خط را بخوان، علت را پیدا کن و فقط همان بخش را اصلاح کن.

نکته مهم

اگر برنامه اجرا نشد، از آخرین خط پیام خطا شروع کن؛ نام فایل و شماره خط معمولاً نزدیک‌ترین سرنخ‌اند.

مفهوم‌های اصلی

سه قطعه‌ای که باید بفهمی

Inheritance و library

library تابع reusable و inheritance قرارداد پایه را می‌دهد؛ پیچیدگی hierarchy باید محدود بماند.

نتیجه قابل مشاهده

قرارداد مصرف‌کننده می‌تواند Validation.notZero و onlyOwner را استفاده کند.

خطایی که باید بشناسی

override اشتباه یا storage layout inheritance در upgrade قرارداد را آسیب می‌زند.

سناریوی واقعی

اعتبارسنجی آدرس و مبلغ در قراردادها تکرار شده است.

فرض کن اعتبارسنجی آدرس و مبلغ در قراردادها تکرار شده است. فعلاً قرار نیست کل برنامه را بسازیم؛ فقط همین نیاز را با چند خط کد حل می‌کنیم تا معلوم باشد هر خط چه کاری انجام می‌دهد.

کارگاه تعاملی

بررسی ساختار تمرین

این صفحه کامپایلر کامل Solidity نیست؛ ساختار تمرین را صادقانه بررسی می‌کند و خروجی مورد انتظار را نشان می‌دهد. برای اجرای کامل به محیط رسمی همان زبان نیاز است.

Contract.sol
خروجیآماده
یک بخش را تغییر بده و دکمه بررسی را بزن.
بعد از هر تغییر، نتیجه را دوباره بررسی کن.
تمرین هدایت‌شده

مالکیت دو مرحله‌ای اضافه کن. قبل از اجرا، خروجی تازه را در یک جمله بنویس.

دام‌های رایج

این سه اشتباه را انجام نده

1

override اشتباه یا storage layout inheritance در upgrade قرارداد را آسیب می‌زند.

2

کپی‌کردن کد بدون اجرای مرحله‌به‌مرحله

3

تغییر چند قسمت هم‌زمان و گم‌شدن علت نتیجه

سنجش چندمرحله‌ای

با 5 سؤال مطمئن شو که مفهوم را گرفته‌ای

سؤال 1 از 5

خروجی درست این نمونه چیست؟

سؤال 2 از 5

چرا پیش از اجرا نتیجه را حدس می‌زنیم؟

سؤال 3 از 5

سرنخ خطای این درس چیست؟

سؤال 4 از 5

بعد از تغییر کد چه کنیم؟

سؤال 5 از 5

چه وقت آماده درس بعدی هستی؟

پایان درس 13

فهمیدی، تغییر دادی، نتیجه را توضیح دادی؟

فقط در این صورت درس را کامل کن و سراغ مرحله بعد برو.