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

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

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

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

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

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

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

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

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

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

void main() {
  myFunction();
}

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

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

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

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

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

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

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

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);
}

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

می خوانم   کلاس ها و Generics در دارت

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

در صورتی که مایلید تابع پس از اتمام عملیات داخلی خود مقداری را به عنوان خروجی ، پس بفرستد فقط کافیست که به جای کلمه کلید 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 و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم . بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید . آدرس ایمیل : info@javareshkian.ir

ارسال یک پاسخ

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

شانزده − چهارده =