توابع بدون بازگشت

سلام امیدوارم همگی خوب باشید و روزهای کرونایی رو به سلامت سپری کنید :slight_smile:
میخواستم بدونم توابعی که هیچ چیزی رو برای ما بر نمیگردانند به چه دردی میخورن توی برنامه؟
مثلا

fun infiniteLoop(): Nothing {
     while (true) {
 
     }
 }

توی بعضی برنامه ها این کار بسیار رایجه
مثلا توی برنامه ی مخصوص IO یک الگو به نام reactor pattern که nodejs هم از این استفاده میکنه روی یک thread تمام IO اصلی برنامه به صورت پیام در loop اجرا میشه
یا در رشته بازی سازی کدی که صفحه بازی رو نمایش میده یک loop بینهایت هست

4 Likes

توی Engine بازی سازی پیش فرض یعنی یک loop بی نهایت هست که صفحه بازی رو نمایش میده؟
و میشه این جمله رو یه توضیحی بدید

You may be wondering why bother with this special return type. It’s useful because by the compiler knowing that the function won’t ever return, it can make certain optimizations when generating the code to call the function.
Essentially, the code which calls the function doesn’t need to bother doing anything after the function call, because it knows that this function will never end before the application is terminated.

بازی همیشه در حال اجراست و یک loop هست که با اتفاقات مختلف شرایط صفحه رو تغییر میده

https://gameprogrammingpatterns.com/game-loop.html

نوشته داره میگه با نوشتن Nothing
کامپایلر میفهمه که منتظره داده برگشتی نباید باشه و میتونه یک سری بهینه سازی انجام بده

3 Likes