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



  • ۲۲
  • آبان

جلسه ۳۱ : افزونه ها در Swift

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

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. قابلیت استفاده از کلاس، ساختار یا نوع شما رنده ی موجود را می توان با کمک extension یا افزونه ها در Swift اضافه کرد. قابلیت تایپ را نیز می توان با استفاده از افزونه ها اضافه کرد، اما عملکرد overriding نمی توان با استفاده از افزونه ها اعمال کرد. قابلیت extension در Swift به شما اجازه می دهد تا موارد ذکر شده را در قالب یک بلوک {} با یک نوع مشخص شده تعریف کرده و در طول برنامه از آن استفاده کنید. در ادامه ی این مباحث برای آشنایی با نحوه ی کار با افزونه ها در Swift با ما همراه باشید.

      کار با افزونه ها در Swift

      در ادامه ی این آموزش به سینتکس و چند نمونه از روند کار با افزونه ها در Swift آشنا خواهید شد.

      قابلیت های گسترش Swift

      • اضافه کردن خصوصیات محاسبه شده و خصوصیات نوع محاسبه شده.
      • تعریف متد نمونه و نوع.
      • ارائه initializer های جدید.
      • تعریف زیر ساخت ها.
      • تعریف و استفاده از انواع جدید تو در تو.
      • ساخت یک نوع موجود مطابق با یک پروتکل.

      سینتکس

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

      مثال : 

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

      مثال : 

      خصوصیات محاسبه شده

      محاسبه ی خصوصیات ‘instance’ و ‘type’ را می توان به کمک قابلیت extension در Swift اضافه کرد.

      مثال : 

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

      مثال : 

      initializer ها

      Swift 4 انعطاف پذیری لازم را برای افزودن initializer های یک نوع موجود توسط افزونه ها را ارائه می کند.

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

       افزونه ها در Swift فقط از ()init پشتیبانی می کند و ()deinit توسط افزونه ها پشتیبانی نمی شود.

      مثال :

      مثال : 

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

      مثال : 

      متدها

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

      مثال :

      مثال : 

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

      مثال : 

      تابع ()topic آرگومان را از نوع  ‘(summation: () → ())‘ می گیرد و برای نشان دادن تابع، هیچ آرگومانی را نمی پذیرد و هیچ مقداری را نمی دهد.

      برای فراخوانی چند مرتبه ی  این تابع ، برای بلوک مقداردهی اولیه شده و با متد ()topic مقداردهی اولیه انجام می شود.

      تغیردادن متدهای نمونه

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

      ساختارها و شمارنده ها که خود یا خصوصیات خود را تغییر می دهد باید متد نمونه را به عنوان جهش، همانند متدهای جهش از یک پیاده سازی اصلی، علامت گذاری کند.

      مثال : 

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

      مثال : 

      زیر مجموعه ها

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

      مثال : 

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

      مثال : 

      انواع تو در تو

      انواع تو در تو برای کلاس ها ، ساختار و انواع شمارنده ها می تواند به کمک قابلیت extension در Swift اضافه شوند :

      مثال : 

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

      مثال : 

      کلام آخر

      در زبان Swift 4 ، قابلیت استفاده از کلاس، ساختار یا نوع شمارنده های موجود را می توان با کمک extension یا افزونه ها در Swift اضافه کرد. با این ساختار می توانید موارد موجود در برنامه در extension تعریف کرده و در طول برنامه بر اساس نوع از آن ها استفاده کنید.

      QR:  جلسه ۳۱ : افزونه ها در Swift
      به اشتراک بگذارید