درس ۱۱ از ۲۵ · روال‌ها

دیرکن و ویژگی‌های روال

دیرکن کارهای پاکسازی را کنار کدی که به آن‌ها نیاز دارد نگه می‌دارد، و ویژگی‌های روال به مترجم می‌گویند روال چه رفتاری دارد.

دیرکن

دستوری که پس از دیرکن بیاید در پایان بلوک اجرا می‌شود، هر راهی که روال از آن بیرون برود. اگر چند دیرکن باشد، آخرین آن‌ها زودتر اجرا می‌شود. رایج‌ترین کاربردش آزادکردن حافظه درست کنار جایی است که گرفته شده است.

defer.salam
روال کار():
    سرچاپ "آغاز کار"
    دیرکن سرچاپ "پاکسازی نخست"
    دیرکن سرچاپ "پاکسازی دوم"
    سرچاپ "انجام کار"
پایان

روال ریشه:
    کار()
    سرچاپ "پس از کار"
پایان
خروجیآغاز کار انجام کار پاکسازی دوم پاکسازی نخست پس از کار

ویژگی‌های روال

پیش از روال می‌توانید این ویژگی‌ها را بنویسید:

  • ناب: روال هیچ اثر جانبی ندارد (چاپ نمی‌کند و متغیر سراسری را تغییر نمی‌دهد) و مترجم این را می‌سنجد.
  • درخط و نادرخط: پیشنهاد می‌کنند بدنه‌ی روال در جای فراخوانی گذاشته شود یا نشود.
  • نابرگشت: روال هرگز برنمی‌گردد، مثل روالی که برنامه را پایان می‌دهد.
  • بی‌کاره: روال کهنه شده و به‌کاربردنش هشدار می‌دهد.
  • همگانی: روال بیرون از بسته هم در دسترس است (درس بسته‌ها).
fn-mods.salam
ناب روال مربع(ع: صحیح): صحیح:
    برگشت ع * ع
پایان

درخط روال دوبرابر(ع: صحیح): صحیح:
    برگشت ع * ۲
پایان

روال ریشه:
    سرچاپ مربع(۹)، دوبرابر(۲۱)
پایان
خروجی81 42