جستجوی ساده محتوایی
روش جستجو:
به صورت عادی
مقادیر شامل تمام کلمات باشد (AND)
مقادیر شامل یک از کلمات باشد(OR)

96/09/21 سه شنبه 10:07

بازدید: ٣٩۶

خصوصیات(Properties) در سوئیفت (آموزش Swift)

بازگشت به صفحه اصلی آموزش سوییفت (Swift)

 

زبان سوئیفت خصوصیاتی (Properties)را برای کلاسهای داده های شمارشی یا ساختمانها در نظر می گیرد تا آنها را به مقادیری مرتبط سازد. خصوصیات می توانند به دو دسته خصوصیات ذخیره شده و خصوصیات محاسبه شده دسته بندی می شوند.

تفاوت بین خصوصیات ذخیره شده و خصوصیات محاسبه شده را می توانید در جدول زیر مشاهده کنید:

 

خصوصیات در سوئیفت

 

هردو خصوصیت ذخیره شده و محاسبه شده به نوع نمونه ها مربوط می شوند. هنگامی که خصوصیات با مقادیر خود مرتبط می شوند، آنگاه بصورت Type Properties تعریف می شود. خصوصیات تعریف شده و ذخیره شده معمولا به نمونه هایی از یک نوع خاص مرتبط می شوند. اگرچه خصوصیات می توانند برحسب نوع نیز مرتبط شوند. این خصوصیات را خصوصیت های نوع می نامند.

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

مشاهده مقدار خصوصیات ذخیره شده

مشاهده خصوصیت زیرکلاسهای موروثی که از کلاسهای بالا مشتق شده اند.

 

خصوصیات ذخیره شده

 

سوئیفت مفهوم خصوصیت ذخیره شده را برای ذخیره نمونه هایی از مقادیر ثابت و متغیر معرفی می کند. خصوصیات ذخیره شده از ثابتها توسط کلمه کلیدی let و خصوصیت ذخیره شده متغیرها توسط کلمه کلیدی var تعریف می شوند.

درحین تعریف خصوصیت ذخیره شده، مقدار پیش فرض ارائه می شود.

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


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

در برنامه فوق، به خط زیر توجه کنید:


خصوصیات در سوئیفت

 

متغیر pi، بعنوان یک مقدار خصوصیت ذخیره شده با مقدار نمونه pi=3.1415 در نظر گرفته شده است. هنگامی که به مقدار نمونه رجوع می شود، تنها مقدار 3.1415 برای آن در نظر گرفته می شود.

روش دیگر استفاده از خصوصیات ذخیره شده، استفاده از آنها بعنوان ساختمان های ثابت است. به همین خاطر کل نمونه ساختمانها بعنوان "خصوصیات ذخیره شده ثابتها" در نظر گرفته می شوند.


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

به جای اینکه مقدار number را به 88.7 تغییر دهید، پیغام خطایی را نمایش می دهد مبنی براینکه number بعنوان یک مقدار ثابت تعریف شده است.

 

خصوصیت ذخیره شده تنبل

 

سوئیفت خصوصیت دیگری به نام خصوصیت ذخیره شده تنبل(Lazy Stored Property) دارد که هنگامی که متغیر برای اولین بار مقدار دهی می شود، مقادیر اولیه را محاسبه نمی کند. تغییر دهنده "تنبل" قبل از تعریف متغیر استفاده می شود تا بتوان آن را بعنوان خصوصیت ذخیره شده تنبل درنظر گرفت.

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

تاخیر در ایجاد شیء(Object)

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


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

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

 

در زبان Objective C، خصوصیات ذخیره شده دارای متغیرهای نمونه ای برای موارد تهیه نسخه پشتیبان هستند تا مقادیر تعریف شده در خصوصیت ذخیره شده را ذخیره کنند.

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

 

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

 

به جای ذخیره مقادیر، خصوصیات محاسبه شده(Computed Properties) یک گیرنده (getter)و یک تنظیم کننده(setter) اختیاری برای بازیابی و تنظیم غیرمستقیم سایر خصوصیات و مقادیر، ارائه می دهند.


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

هنگامی که یک خصوصیت محاسبه شده مقدار جدیدی را بصورت تعریف نشده رها می کند، مقدار پیش فرض برای آن متغیر خاص در نظر گرفته می شود.  

 

درنظر گرفتن خصوصیات محاسبه شده بعنوان خصوصیات فقط خواندنی

 

یک خصوصیت فقط خواندنی در خصوصیت محاسبه شده است که به صورت خصوصیتی به همراه گیرنده (getter) ولی بدون تنظیم کننده(setter) تعریف می شود. همیشه از آن برای برگرداندن یک مقدار استفاده می شود. برای دسترسی بیشتر به این نوع مقادیر می توانید از دستور ‘.’ استفاده کنید ولی نمی توانید در یک مقدار دیگر قرار دهید.


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

درنظر گرفتن خصوصیات محاسبه شده بعنوان مشاهده کنندگان خصوصیت

 

در زبان سوئیفت برای مشاهده و پاسخگویی به مقادیر خصوصیت، از مشاهده کنندگان خصوصیت (Properties Observers) استفاده می شود. هر زمان که مقادیر خصوصیت تنظیم می شوند، مشاهده کنندگان خصوصیت فراخوانی می شوند. به جز خصوصیات ذخیره شده تنبل، می توانیم مشاهده کنندگان خصوصیت را به خصوصیت وراثتی(Inherited) اضافه کنیم. برای این منظور از روش 'overriding' استفاده می شود.

قبل از ذخیره مقادیر ( willset).

بعداز ذخیره مقدار جدید (didset).

هنگامی که خصوصیتی بر روی willset تنظیم می شود، مشاهده کنندگان didset نمی توانند فراخوانی شوند.


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

متغیرهای همگانی و محلی

 

متغیر همگانی و متغیر محلی برای محاسبه و مشاهده خصوصیات تعریف می شوند.


خصوصیات در سوئیفت

 

خصوصیات Type

 

خصوصیت در قسمت تعریف Type به کمک یک جفت آکولاد {} تعریف می شوند که البته حوزه متغیرها نیز از قبل تعریف شده اند. برای تعریف خصوصیات type انواع مقادیر، از کلمه کلیدی static استفاده می شود و برای انواع کلاسها، از کلمه کلیدی Class استفاده می شود.

 

خصوصیات پرس و جو(Quering) و تنظیم (Setting)

 

همانند خصوصیات نمونه، خصوصیات Type نیز با استفاده از دستور ‘.’ و تنها بر روی یک نوع، به جای اشاره به یک نمونه، پرسیده و تنظیم می شوند.


خصوصیات در سوئیفت

 

وقتی برنامه فوق را با استفاده از Playground  اجرا می کنیم، نتایج زیر بدست می آیند:


خصوصیات در سوئیفت

 

بازگشت به صفحه اصلی آموزش سوییفت (Swift)

 

طراحی سایت و سئو توسط ضابط