آشنایی با توابع در دارت
در دارت شما به راحتی می توانید نسبت به تعریف توابع و فراخوانی آنها اقدام نمایید . یک تابع ، قطعه ای از کد است که با یک نام معنی دار ، نامگذاری شده است و قابلیت فراخوانی از قسمت های دیگر برنامه را دارد . در بحث شی گرایی و کپسوله کردن کدها به منظور استفاده مجدد راحت تر از آنها ، از توابع زیاد استفاده می شود .
در واقع شما هر قسمت از کد را که کارایی وابسته ای دارد و در نهایت منجر به ایجاد یک خروجی خاص یا انجام یک کار خاص می شود می توانید در یک تابع قرار داده ، برای آن یک نام معنی دار انتخاب کرده و در قسمت های دیگر برنامه فقط نام تابع را فراخوانی نمایید تا کامپایلر قطعه کدهای داخل آن تابع را به ترتیب اجرا و نتیجه کار را ایجاد نماید .
یک تابع ، قطعه ای از کدهاست که با یک نام معنی دار ، نامگذاری شده و در قسمت های مختلف برنامه قابلیت فراخوانی و استفاده را دارد .
اصلی ترین تابع در دارت تابع main است . در واقع اگر این تابع در برنامه نباشد کامپایلر دارت به خطا خورده و اجرای برنامه را متوقف می کند . لذا کدهای اصلی برنامه در داخل تابع main نوشته می شوند .
اصول نامگذاری توابع نیز همانند متغییرها می باشد :
- با عدد شروع نشود
- دارای فاصله نباشد
- از کلمات رزرو شده محیط برنامه نویسی نباشد
- با کلمات انگلیسی تایپ شده باشد
- جهت فاصله گذاری استفاده از اندرلاین _ بلامانع است
- و …
ساختار کلی تعریف یک تابع و فراخوانی آن ، به شکل زیر است :
void main() { myFunction(); } void myFunction(){ print(1 + 1); }
در این مثال من یک تابع جدید به نام myFunction ایجاد کرده ام . کلمه کلیدی void که قبل از نام تابع آمده است به معنی این است که تابع هیچ خروجی ندارد و فقط وظایفی که در بدنه آن تعریف شده است را اجرا می کند.
داخل پردانتزهای مقابل نام تابع امکان ارسال پارامتر به داخل تابع وجود دارد . در مواقعی که لازم است که مقادیری از بیرون تابع به داخل آن پاس داده شود و در داخل تابع مورد استفاده قرار گیرید از پارامترهای ورودی استفاده میشود.
تمام کدهایی که داخل آکولادهای {} بعد از نام تابع قرار بگیرید ، جزئی از تابع حساب شده و در هر بار فراخوانی تابع اجرا خواهد شد . همان طور که در خط ۲ مشاهده می شود ، هر جا نام تابع فراخوانی شود ، کامپایلر کدهای داخل آن را اجرا خواهد کرد .
تعریف پارامتر ورودی برای تابع
در قطعه کد زیر من چند مقدار را به داخل تابع پاس داده و در داخل تابع با استفاده از آنها عمل جمع را انجام داده ام :
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); }
قراردادن پارامترها داخل یک آکولاد {} و مقداردهی پیش فرض با قرار دادن : انجام می شود . در صورتی که در لحظه فراخوانی مقادیر پارامترها توسط کاربر تعیین گردد از مقادیر ارسالی کاربر استفاده می شود ، در غیر اینصورت از مقادیر پیش فرض که در تعریف پارامترهای تابع درج شده است ، استفاده می شود .
تعریف نوع خروجی برای تابع
در صورتی که مایلید تابع پس از اتمام عملیات داخلی خود مقداری را به عنوان خروجی ، پس بفرستد فقط کافیست که به جای کلمه کلید 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 ریخته شده و در خط بعد نیز چاپ شده است .
جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی دارت مراجعه نمایید .
امیدوارم این مطلب برای شما مفید باشد .