آموزش Ruby | توابع

تعریف تابع

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

برای تعریف یک تابع در Ruby از کلمه کلیدی def استفاده می‌کنیم و در پایان تابع، با کلمه کلیدی end آن را می‌بندیم. ساختار کلی به این صورت است:

def نام_تابع
  # بدنه تابع
end

به عنوان مثال، تابعی می‌نویسیم که یک پیام ساده را چاپ کند:

def سلام
  puts "سلام به دنیای Ruby!"
end

در این کد، سلام نام تابع است. برای اجرای این تابع کافی است نام آن را بنویسیم:

سلام

با اجرای این خط، خروجی زیر نمایش داده می‌شود:

سلام به دنیای Ruby!

نکته مهم این است که در Ruby، توابع را می‌توان هم با پرانتز و هم بدون پرانتز فراخوانی کرد. یعنی هر دو حالت زیر درست هستند:

سلام
سلام()

یکی از ویژگی‌های جالب Ruby این است که اگر تابعی فقط یک خط کد داشته باشد، می‌توانید آن را به شکل کوتاه‌تری هم بنویسید. برای این کار از دستور def به همراه نام تابع و علامت مساوی استفاده می‌کنیم:

def سلام = puts "سلام به دنیای Ruby!"

این شکل نوشتار در Ruby 3 به بعد پشتیبانی می‌شود و برای توابع کوتاه بسیار مناسب است.

همچنین توجه داشته باشید که نام تابع باید با حروف کوچک شروع شود و می‌تواند شامل حروف، اعداد و زیرخط (_) باشد. اگر نام تابع با حرف بزرگ شروع شود، Ruby آن را به عنوان یک ثابت در نظر می‌گیرد نه یک تابع، بنابراین بهتر است همیشه از حروف کوچک برای شروع نام تابع استفاده کنید.

به عنوان یک مثال دیگر، تابعی می‌نویسیم که سه بار یک پیام مشخص را چاپ کند:

def سه_بار_چاپ
  puts "این یک پیام تستی است"
  puts "این یک پیام تستی است"
  puts "این یک پیام تستی است"
end

سه_بار_چاپ

خروجی این کد به صورت زیر خواهد بود:

این یک پیام تستی است
این یک پیام تستی است
این یک پیام تستی است

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

در نهایت، دقت کنید که در Ruby همه چیز یک شیء است و توابع نیز از این قاعده مستثنا نیستند. اما در این سطح از آموزش، همین اندازه که بتوانید تابع تعریف کنید و آن را فراخوانی کنید، کافی است. در بخش‌های بعدی، با پارامترها و بازگشت مقدار در توابع آشنا خواهید شد.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3
  • 4