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



  • ۲۲
  • آبان

جلسه ۳۲ : پروتکل ها در Swift

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

      مقدمه

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

      آشنایی با پروتکل ها در Swift

      در این آموزش شما را با سینتکس و مباحث مربوط به پروتکل ها در Swift آشنا می کنیم.

      سینتکس

      پروتکل ها نیز از سینتکس مشابه کلاس ها، ساختارها و فهرست ها استفاده می کنند :

      مثال : 

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

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

      مثال : 

      وقتی یک پروتکل برای ابر کلاس تعریف می شود، نام پروتکل باید با نام کامپوننت ابر کلاس دنبال شود:

      مثال : 

      خصوصیت و متد مورد نیاز

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

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

      همچنین مشخص می کند که یک ویژگی شامل ‘gettable’ یا ‘settable’ می شود.

      نیازهای یک خصوصیت با کلمه ی کلیدی ‘var’ به عنوان خصوصیت اعلام می شود.

      {get set} برای اعلام gettable استفاده می شود و خصوصیات settable بعد از اعلام نوع قرار دارد.

      Gettable با خصوصیت {get} بعد از اعلام نوع تعریف شده است.

      مثال :

      مثال : 

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

      مثال : 

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

      مثال : 

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

      مثال : 

      نیازهای initializer

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

      سینتکس

      مثال : 

      به عنوان مثال :

      مثال : 

      اجرای کلاس از الزامات اولیه پروتکل

      initializer های Designated یا convenience به کاربر اجازه می دهد تا برای مقداردهی اولیه ی استاندارد یک پروتکل از کلمه کلیدی  ‘required’ استفاده کند:

      مثال : 

      انطباق پروتکل در همه زیر کلاسها برای اجرای صریح یا ارثی با مادیفایر ‘required’ پیاده سازی شده است.

      هنگامی که یک زیرگروه نیاز اولیه آن را به ابر کلاس متوقف می کند، با کلمه کلیدی مادیفایر ‘override’ مشخص می شود.

      مثال : 

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

      مثال : 

      انواع پروتکل

      به جای اجرای ویژگی ها در یک پروتکل، آنها به عنوان انواع توابع، کلاس ها، متد ها و… مورد استفاده قرار می گیرند.

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

      • تابع، متد یا مقداردهی اولیه به عنوان پارامتر یا نوع بازگشت
      • ثابت، متغیر یا خصوصیت
      • آرایه ها، واژه نامه ها یا ظروف دیگر به عنوان اقلام

      مثال : 

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

      مثال : 

      اضافه کردن پروتکل سازگاری با یک برنامه افزونه

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

      خصوصیات جدید، متدها و شاخص ها می توانند به کمک انواع extensions ها به انواع موجود اضافه شوند.

      مثال : 

      وراثت پروتکل

      Swift 4 اجازه می دهد که پروتکل ها خصوصیات را از خصوصیات مشخص شده به ارث ببرند.

      این شبیه به وراث کلاس است، اما با انتخاب فهرست چند پروتکل ارثی که توسط کاما جدا شده اند.

      مثال : 

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

      مثال : 

      پروتکل فقط کلاس

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

      مثال : 

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

      مثال : 

      ترکیب بندی پروتکل

      Swift 4 اجازه می دهد پروتکل های چندگانه در قالب یکی با کمک ترکیب پروتکل ها فرخوانی شوند.

      سینتکس

      مثال : 

      مثال :

      مثال : 

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

      مثال : 

      بررسی همگرایی پروتکل

      انطباق پروتکل توسط عملگرهای “is” و “as” آزمایش شده است که مشابه نوع ریخته گری است.

      • عملگر اگر یک نمونه با استاندارد پروتکل سازگار باشد true و در غیر این صورت false را برمی گرداند.
      • as? از عملگر downcast یک مقدار اختیاری را از نوع پروتکل برمی گرداند و این مقدار صفر است اگر نمونه با آن پروتکل سازگار نباشد.
      • as از عملگر downcast اگر اجرا موفقیت آمیز نباشد باعث خطای زمان اجرا می شود.

      مثال : 

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

      مثال : 

      کلام آخر

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

      QR:  جلسه ۳۲ : پروتکل ها در Swift
      به اشتراک بگذارید