دستور بازگشتی
در برنامهنویسی، یک دستور بازگشتی(Return) سبب خارج شدن از رویه فعلی شده و برنامه از آنجایی که رویه صدا زده شده به کار خود ادامه میدهد همچنین این اصطلاح را نقطه بازگشت (Return Address) گویند. از زمان فراخوانی رویه تا زمان پایان آن نقطه بازگشت درون پشته برنامه ذخیره میشود. دستور Return در بسیاری از زبانهای برنامهنویسی به یک رویه این امکان را میدهد تا یک مقدار مشخصی را از آنجایی که در برنامه فراخوانی شده باشد بازگرداند.
تاریخچه
در سی/سی پلاسپلاس دستور return exp;
سبب به انتها رسیدن رویه و بازگشت آن به نقطه فراخوانی میشود و مقدار exp
را گزارش میدهد. اگر نوع رویه از نوع Void باشد میتوان دستور return را بدون مقدار خاصی استفاده کرد که تنها منجر به خروج از رویه میشود.
دستور return در پاسکال وجود ندارد. (هرچند در نسخههای جدید پاسکال به کمک دستور Exit(exp);
میتوان یک مقدار را بازگشت داد و بدون پارامتر فقط از رویه خارج میشود)
در برخی از زبانهای برنامهنویسی بیان گرا از جمله لیسپ، پرل و روبی به جای آنکه مقدار آخر رویه را بازگشت دهند به برنامهنویس این امکان را میدهند تا یک مقدار صریح را بیان کنند.
در برخی موارد اگر مقدار واضحی برای مقدار بازگشتی رویه وجود نداشته باشد میتوان از مقدار null
استفاده کرد: در پایتون وقتی مقدار بازگشتی وجود نداشته باشد مقدار None
بازگشت داده خواهد شد همچنین در جاوااسکریپت مقدار Undefined
برای این حالت تلقی میشود.
دستورها
دستور return دارای اشکال مختلفی است. در زیر رایجترین آنها اشاره شدهاست:
زبان | دستور Return | مقدار بازگشتی در صورت وجود نداشتن |
---|---|---|
سی، سی پلاسپلاس، جاوا، پیاچپی، سی شارپ، جاوااسکریپت، دی، ایدا، بش | return value;
| در سی و سی پلاسپلاس، رفتار نامشخص وجود دارد.
در پیاچپی، بازگشت مقدار در جاوااسکریپت، بازگشت مقدار |
بیسیک | RETURN
| |
لیسپ | (return value)
| مقدار آخرین دستور |
پرل، روبی | return @values;
return $value;
return;
| مقدار آخرین دستور |
پایتون | return value
| None
|
اسمالتاک | ^ value
| |
ویژوال بیسیک داتنت | Return value
| |
ویندوز پاورشل | return value;
| object |
اسمبلی اکس۸۶ | ret
| مقدار ثبات eax |
جستارهای وابسته
- رویه
- برنامهنویسی
منابع
- ↑ «Complex Functions and Function Complexities». tldp.org. دریافتشده در ۲۰۱۶-۱۱-۲۵.
- ↑ «return Statement (C)». msdn.microsoft.com. دریافتشده در ۲۰۱۶-۱۱-۲۵.
- ↑ «return Statement (C++)». msdn.microsoft.com. دریافتشده در ۲۰۱۶-۱۱-۲۵.
- ↑ «PHP: return - Manual». www.php.net. دریافتشده در ۲۰۱۶-۱۱-۲۵.
- ↑ «return». Mozilla Developer Network. دریافتشده در ۲۰۱۶-۱۱-۲۵.
- ↑ «undefined». Mozilla Developer Network. دریافتشده در ۲۰۱۶-۱۱-۲۵.