آموزش دارت: تعریف توابع و انواع پارامتر ها

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

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

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

تعریف اولین تابع:

همانطور که میبینید در تابع تعریف شده بالا مقدار خروجی bool  تعریف شده و ورودی یک عدد از نوع int  می باشد دقیقا مثل c از return هم استفاده میشود برای بازگشت.

تابع بالا را به شکل زیر نیز میتوان تعریف کرد:

برای توابعی یک خطی میتوانید از دستور shorthand نیز به شکل زیر استفاده کنید:

در کد بالا معنای expr <=  درواقع به معنای { return expr; }  می‌باشد و <= گاهی اوقات به معنای فلش چاق نیز معرفی می‌شود.

 

پارامتر ها

درتوابع پارامتر های ارسالی معمولا به دو شکل هستند پارامتر های ضروری و پارامترهای دلخواه، که ابتدا باید توابع ضروری در ورودی فهرست شوند و سپس پارامتر های دلخواه بایستی لیست شوند.

پارامتر های دلخواه میتوانند از نوع named یا positional  باشند، اما هر دوی آنها نمیتواند باشد.

پارامترهای دلخواه named

برای استفاده از پارامتر دلخواه نامگذاری شده به شکل paramName: value عمل میکنیم به مثل زیر توجه کنید:

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

پارامتر های دلخواه positional

پارامتر های دلخواه جایگذاری شده به سادگی با محصور شدن توسط [] در آرگومان های ورودی تعریف میشوند به مقال زیر توجه کنید:

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

نکته: توجه داشته باشید پارامتر های جایگذاری شده را با آرایه های یعنی همان List ها اشتباه نگیرید.

نحوه استفاده از تابع بالا:

تعیین مقدار پیش فرض برای پارامتر

شما میتوانید هنگام تعریف تابع یک مقدار پیش فرض را به مساوی مانند php نسبت دهید، این موضوع شامل متغییر های جایگذاری شده و نام گذاری شده هر دو می باشد.

با هم به مثال زیر نگاهی بیاندازیم:

استفاده از تابع به عنوان شی

با توجه به چیزی که در جلسه پیش مطرح کردیم، همه چیز شی است و این جلسه مطرح شد تابع قابل پاس دادن می‌باشد، حالا مثال زیر در مورد تابع زیر را با هم می‌بینیم:

در کد بالا لیستی داریم که توسط تابع هر عضو آن پرینت میشود.

نکته: از ویژگی های جالب در زبان دارت می باشد که ندانستنش میتواند در مطالعه سورس کد شما را سر در گم کند.

تابع نیز می‌تواند به به صورت متغییر نسبت داده شود به تابع زیر که از توع ناشناس میباشد که در قسمت بعدی توضیح آن مطرح میشود:

تابع بالا به صورت شورت هند با پارامتر msg تعریف شده است. که شکل رشته در جلسه مربوط به رشته نیز مطرح می‌شود.

توابع ناشناس

معمولا توابع نامگذاری شده هستند، مثل ()main اما شما میتوانید تابع هایی را بدون نام تعریف کنید که توابع ناشناس هستند. شما بایستی توابع ناشناس را به توابع نسبت دهید در این صورت می‌توانید تعریف مجدد و حتی آن‌ها از برنامه حذف کنید.

برای تریف تابع کافی است از الگوی زیر تبعیت کنیم:

 

به مثال زیر نگاهی می‌اندازیم تا تابع زیر را نحوه استفاده از آن رو مجددا ببینیم:

برای دیدن عملکرد آن به اینجا مراجعه کنید

در دارت متغییر‌ها در توابع زیر مجموعه قابل دسترسی هستند به مثال زیر توجه کنید:

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

شما یک تابع را در خروجی تابع دیگر می‌توانید قرار دهید:

تابع makeAdder یک تابعی است که خروجی تابع تولید میکند میزان اضافه شونده را در ورودی خود میگیرید.

مقایسه توابع

دو تابع در در مقایسه نسبت به خروجی ایشان مقایسه می‌شوند و حتی تابع با متغییر نیز مقایسه می‌شود

مثال:

نکته:  تابعی که به شکل بالا تعریف شود همواره null می باشد.

 

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

دیدگاهتان را بنویسید

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