آشنایی با توابع در دارت

تعداد بازدید ها : 2,214 بازدید
 آشنایی با توابع در دارت

زبان برنامه نویسی دارت

در دارت شما به راحتی می توانید نسبت به تعریف توابع و فراخوانی آنها اقدام نمایید . یک تابع ، قطعه ای از کد است که با یک نام معنی دار ، نامگذاری شده است و قابلیت فراخوانی از قسمت های دیگر برنامه را دارد . در بحث شی گرایی و کپسوله کردن کدها به منظور استفاده مجدد راحت تر از آنها ، از توابع زیاد استفاده می شود .

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

یک تابع ، قطعه ای از کدهاست که با یک نام معنی دار ، نامگذاری شده و در قسمت های مختلف برنامه قابلیت فراخوانی و استفاده را دارد .

اصلی ترین تابع در دارت تابع main است . در واقع اگر این تابع در برنامه نباشد کامپایلر دارت به خطا خورده و اجرای برنامه را متوقف می کند . لذا کدهای اصلی برنامه در داخل تابع main نوشته می شوند .

اصول نامگذاری توابع نیز همانند متغییرها می باشد :

  • با عدد شروع نشود
  • دارای فاصله نباشد
  • از کلمات رزرو شده محیط برنامه نویسی نباشد
  • با کلمات انگلیسی تایپ شده باشد
  • جهت فاصله گذاری استفاده از اندرلاین _ بلامانع است
  • و …

ساختار کلی تعریف یک تابع و فراخوانی آن ، به شکل زیر است :

void main() {
  myFunction();
}

void myFunction(){
  print(1 + 1);
}

در این مثال من یک تابع جدید به نام myFunction ایجاد کرده ام . کلمه کلیدی void که قبل از نام تابع آمده است به معنی این است که تابع هیچ خروجی ندارد و فقط وظایفی که در بدنه آن تعریف شده است را اجرا می کند.

می خوانم   کار با Flutter Inspector

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

تمام کدهایی که داخل آکولادهای {} بعد از نام تابع قرار بگیرید ، جزئی از تابع حساب شده و در هر بار فراخوانی تابع اجرا خواهد شد . همان طور که در خط ۲ مشاهده می شود ، هر جا نام تابع فراخوانی شود ، کامپایلر کدهای داخل آن را اجرا خواهد کرد .

توابع در دارتتعریف پارامتر ورودی برای تابع

در قطعه کد زیر من چند مقدار را به داخل تابع پاس داده و در داخل تابع با استفاده از آنها عمل جمع را انجام داده ام :

void main() {
  myFunction(2, 5);
}

void myFunction(int a, int b) {
  int sum = a + b;
  print(sum);
}

در مثال فوق متغییرهای a , b پارامترهای ورودی تابع myFunction هستند و هر دو از نوع int (عدد صحیح) تعریف شده اند . البته هیچ محدودیتی در نوع پارامترهای ورودی تابع وجود ندارد و شما مجاز هستید از هر نوع داده ای که نیاز داشتید در پارامترهای ورودی استفاده نمایید .

تعریف پارامترهای ورودی اختیاری

همچنین اگر مایل باشیم مقداردهی به پارامترهای ورودی تابع اختیاری شود و در صورتی که در لحظه فراخوانی مقداردهی نشد ، خطا ندهد و از مقادیر پیش فرض استفاده نماید ، می توانیم همانند قطعه کد زیر عمل نماییم .

void main() {
  myFunction(a : 2, b : 5);
  myFunction();
}

void myFunction({int a : 5, int b : 3}) {
  int sum = a + b;
  print(sum);
}

قراردادن پارامترها داخل یک آکولاد {} و مقداردهی پیش فرض با قرار دادن : انجام می شود . در صورتی که در لحظه فراخوانی مقادیر پارامترها توسط کاربر تعیین گردد از مقادیر ارسالی کاربر استفاده می شود ، در غیر اینصورت از مقادیر پیش فرض که در تعریف پارامترهای تابع درج شده است ، استفاده می شود .

می خوانم   ویجت TabBar

تعریف نوع خروجی برای تابع

در صورتی که مایلید تابع پس از اتمام عملیات داخلی خود مقداری را به عنوان خروجی ، پس بفرستد فقط کافیست که به جای کلمه کلید void (به معنی بی مقدار) ، یک نوع داده را تعریف نمایید . به عنوان مثال به قطعه کد زیر توجه نمایید :

void main() {
  int sum = myFunction(a: 2, b: 5);
  print(sum);
}

int myFunction({int a: 5, int b: 3}) {
  int sum = a + b;
  return sum;
}

از داخل تابع با کلمه کلیدی return مقدار داخل تابع بازگشت داده شده است و در لحظه فراخوانی تابع نیز خروجی تابع در یک متغییر از نوع int ریخته شده و در خط بعد نیز چاپ شده است .

جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی دارت مراجعه نمایید .

امیدوارم این مطلب برای شما مفید باشد .

2+
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم. همانند سایر کارشناسان IT در تلاشم تا دنیا جای زیباتری برای زندگی باشد. بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید. آدرس ایمیل : mjfakhr@yahoo.com

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 + یازده =