دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۲
  • آبان

جلسه ۱۷ : توابع در Swift

  • دسته‌بندی‌ها :
جلسه ۱۷ : توابع در Swift
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. یک تابع مجموعه ای از دستوراتی است که برای انجام یک کار خاص سازماندهی می شوند. یک تابع در Swift می تواند به عنوان یک تابع ساده C به عنوان یک تابع زبان تابع Objective C پیچیده باشد. این توابع همچنین به ما اجازه می دهد که ارزش های پارامترهای محلی و عمومی را به فراخوانی توابع انتقال دهیم. برای آشنایی بیشتر با عملکرد و نحوه کار با توابع در Swift در ادامه ی این مبحث با ما همراه باشید.

      کار با توابع در Swift

      در ادامه ی این آموزش شما را با ساختار کار با توابع در Swift و جزئیات آن آشنا خواهیم کرد.

      ساختار کلی توابع

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

      اعلامیه : به کامپایلر در مورد نام تابع، نوع بازگشتی و پارامترها اعلام می شود.

      تعریف تابع : این بدنه ی واقعی یک تابع را تعریف می کند.

      توابع Swift 4 شامل نوع پارامتر و انواع بازگشتی آن است.

      تعریف تابع

      در Swift 4 یک تابع توسط کلید واژه “func” تعریف می شود.

      هنگامی که یک تابع به تازگی تعریف شده است، ممکن است یک یا چند مقدار را به عنوان پارامترهای ورودی به تابع برساند.

      سپس می توان پارامترهای ورودی را در بدنه تابع بکار برد و یک مقدار خروجی را برگرداند.

      هر تابع نامی دارد که با آن نام شناخته می شود، این نام توسط برنامه نویس تعیین می شود.

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

      آرگومان های ورودی یک تابع باید بر اساس ترتیبی که تعریف شده مقداردهی شوند.

      مقادیر بازگشتی را باید به دنبال → تعریف کرد.

      ساختار :

      مثال : 

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

      مثال : 

      نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

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

      برای نمونه یک تابع ساده با نام display تعریف می کنیم تا نحوه ی پاس دادن پارامترها به تابع و چاپ مقدار بازگشتی تابع را نشتن دهیم.

      مثال:

      مثال : 

      نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

      پارامترها و مقادیر بازگشتی

      Swift 4 پارامترهای توابع انعطاف پذیر و مقادیر بازگشتی آن را از مقادیر ساده تا پیچیده فراهم می کند.

      توابع با پارامترها

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

      مثال:

      مثال : 

      نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

      توابع بدون پارامتر

      همچنین می توانید هیچ پارامتری به تابع ارسال نکنید.

      سینتکس تابع بدون پارامتر:

      مثال : 

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

      مثال : 

      نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

      مقادیر بازگشتی در توابع

      توابع قابلیت بازگرداندن انواع مقادیر صحیح ، اعشاری و رشته ای را به برنامه اصلی دارند.

      در مثال زیر تابعی قرار داده ایم که عملکرد کامل پارامترها و مقادیر بازگشتی را در یک تابع نشان می دهد.

      در این مثال برنامه ای نوشته شده که پارامترهایی از نوع اعداد صحیح (int) دریافت می کند.

      سپس با مقایسه اعداد با هم کوچکترین و بزرگترین عدد را به برنامه اصلی برمی گرداند:

      مثال : 

      نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:

      مثال : 

      توابع بدون مقادیر بازگشتی

      بعضی از توابع ممکن است آرگومان های داخل تابع را بدون هیچ مقدار بازگشتی اعلام کنند.

      در مثال زیر ابتدا مقادیر a و b به پارامترهای ورودی تابع ()sum ارسال می شود.

      سپس داخل تابع مقادیر a و b با هم جمع شده و نتیجه در خود تابع چاپ می شود.

      بنابراین تابع ()sum هیچ مقداری را بازگشت نمی دهد:

      مثال : 

      نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

      نوع بازگشتی اختیاری در توابع

      زمانیکه در توابع مقدار بازگشتی را معیین می کنیم مثلا اگر از نوع integer اعلام می کنیم باید در تابع return نیز مقدار را از همان نوع در نظر بگیریم:

      مثال : 

      نتیجه ی اجرای برنامه ی فوق با playground بصورت زیر خواهد بود:

      مثال : 

      نام پارامترهای داخلی و محلی در توابع

      نام پارامترهای محلی

      پارامترهای محلی در داخل توابع در دسترس هستند:

      مثال : 

      در مثال فوق آرگومان number به عنوان یک متغیر داخلی در تابع ()sample قابل دسترسی است.

      حالا نحوه ی فراخوانی تابع فوق با ارسال پارامتر بصورت زیر است:

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      پارامترهای خارجی

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

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      پارامترهای متناوب

      هنگامی که قصد دارید مقادیر چندگانه به پارامترها اختصاص دهید می توانید ازساختار پارامترهای چندگانه استفاده کنید.

      مثال :

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      ثابت ، متغیر و پارامترهای I/O

      توابع به صورت پیش فرض پارامترها را به عنوان “ثابت” در نظر می گیرند.

      اما کاربر می تواند پارامترها را به عنوان متغیر نیز تعریف کند.

      قبلا گفته شد که برای تعریف ثابت از کلمه کلیدی ‘let’ و از ‘var’ برای تعریف متغیر استفاده می شود.

      پارامترهای I/O مقادیر پارامترهای توابع را حفظ می کنند، و برای تعریف آن باید از کلمه کلیدی ‘inout’ استفاده کرد.

      برای فراخوانی توابع با پارامترهای I/O باید قبل از نام پارامتر از کاراکتر ‘&’ استفاده کنید.

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      انواع تابع و کاربرد آن

      هر تابع با توجه به پارامترهای ورودی و تابع نتیجه خاصی را دنبال می کند.

      مثال : 

      مثال:

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      در اینجا تابع با دو آرگومان no1 و no2 به عنوان انواع داده های صحیح آغاز می شود و نوع بازگشت آن نیز به عنوان ‘int’ اعلام شده است:

      مثال : 

      توابع ممکن است دارای انواع داده های void باشند و چنین توابعی چیزی را باز نمی گردانند.

      مثال:

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

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

      توابع ابتدا با آرگومان های صحیح، اعشاری یا نوع رشته منتقل می شوند و پس از آن به عنوان تابع ثابت و یا متغیر به شکل زیر اعلام می شود:

      مثال : 

      در اینجا sum یک نام تابع با متغیرهای عادی صحیح ‘a’ و ‘b’ است که اکنون به عنوان یک متغیر به عنوان افزودنی تابع اعلام شده است.

      سپس تابع sum را داخل متغیر addition قرار داده و نتایج آن را در خروجی قرار می دهیم:

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      نوع توابع، نوع متغیرها و نوع بازگشتی

      ما همچنین می توانیم تابع خود را به عنوان پارامترهای دیگر به یک تابع دیگر منتقل کنیم.

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      توابع تودرتو

      یک تابع توزیع شده امکان فراخوانی تابع درونی فراهم می کند.

      مثال : 

      نحوه ی اجرای برنامه ی فوق با استفاده از playground بصورت زیر خواهد بود:

      مثال : 

      کلام آخر

      توابع در تمام زبان های برنامه نویسی در کوتاه کردن کدها و حجم برنامه نقش بسیار مهمی را ایفا می کنند و همچنین باعث صرفه جویی در وقت نیز می شوند، از این رو در این بخش به مباحث کار با توابع در Swift پرداختیم.

      QR:  جلسه ۱۷ : توابع در Swift
      به اشتراک بگذارید