دستور بازگشتی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو

در برنامه‌نویسی، یک دستور بازگشتی(Return) سبب خارج شدن از رویه فعلی شده و برنامه از آنجایی که رویه صدا زده شده به کار خود ادامه می‌دهد همچنین این اصطلاح را نقطه بازگشت (Return Address) گویند. از زمان فراخوانی رویه تا زمان پایان آن نقطه بازگشت درون پشته برنامه ذخیره می‌شود. دستور Return در بسیاری از زبان‌های برنامه‌نویسی به یک رویه این امکان را می‌دهد تا یک مقدار مشخصی را از آنجایی که در برنامه فراخوانی شده باشد بازگرداند.

تاریخچه[ویرایش]

در سی/سی پلاس‌پلاس دستور return exp; سبب به انتها رسیدن رویه و بازگشت آن به نقطه فراخوانی می‌شود و مقدار exp را گزارش می‌دهد. اگر نوع رویه از نوع Void باشد می‌توان دستور return را بدون مقدار خاصی استفاده کرد که تنها منجر به خروج از رویه می‌شود.

دستور return در پاسکال وجود ندارد. (هرچند در نسخه‌های جدید پاسکال به کمک دستور Exit(exp); می‌توان یک مقدار را بازگشت داد و بدون پارامتر فقط از رویه خارج می‌شود)

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

در برخی موارد اگر مقدار واضحی برای مقدار بازگشتی رویه وجود نداشته باشد می‌توان از مقدار null استفاده کرد: در پایتون وقتی مقدار بازگشتی وجود نداشته باشد مقدار None بازگشت داده خواهد شد همچنین در جاوااسکریپت مقدار Undefined برای این حالت تلقی می‌شود.

دستورها[ویرایش]

دستور return دارای اشکال مختلفی است. در زیر رایج‌ترین آنها اشاره شده است:

زبان دستور Return مقدار بازگشتی در صورت وجود نداشتن
سی،[۱] سی پلاس‌پلاس، جاوا، پی‌اچ‌پی، سی شارپ، جاوااسکریپت، دی، ایدا، بش
return value;
در سی[۲] و سی پلاس‌پلاس،[۳] رفتار نامشخص وجود دارد.

در پی‌اچ‌پی،[۴] بازگشت مقدار NULL

در جاوااسکریپت،[۵] بازگشت مقدار undefined[۶]

بیسیک
RETURN
لیسپ
(return value)
مقدار آخرین دستور
پرل، روبی
return @values;
return $value;
return;
or a contextual return sequence
مقدار آخرین دستور
پایتون
return value
None
اسمال‌تاک
^ value
ویژوال بیسیک دات‌نت
Return value
ویندوز پاورشل
return value;
object
اسمبلی اکس۸۶
ret
مقدار ثبات eax

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. «Complex Functions and Function Complexities». tldp.org. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.
  2. «return Statement (C)». msdn.microsoft.com. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.
  3. «return Statement (C++)». msdn.microsoft.com. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.
  4. «PHP: return - Manual». www.php.net. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.
  5. «return». Mozilla Developer Network. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.
  6. «undefined». Mozilla Developer Network. دریافت‌شده در ۲۰۱۶-۱۱-۲۵.