برای اعتبارسنجی نوع یک نمونه در زبان سوئیفت، مبحثی به نام ‘Type Casting’ ارائه شده است که برای بررسی اینکه نوع نمونه متعلق به یک کلاس اصلی یا فرعی خاص بوده یا در سلسله مراتب خاص خود تعریف شده است، استفاده می شود.
type casting در سوئیفت دو اپراتور یا عملگر “is” را برای بررسی نوع یک مقدار و”as” را برای منتقل کردن مقدار نوع به یک نوع دیگر فراهم کرده و همچنین بررسی می کند که آیا نوع نمونه از استاندارد مطابقت پروتکل مورد نظر پیروی می کند یا خیر.

Type Casting

«تبدیل نوع» (Type Casting) به فرایند تبدیل یک متغیر از یک نوع به نوع دیگر گفته می‌شود. ما می‌توانیم تقریباً همه چیز را به نوع رشته تبدیل کنیم. با این که این کار در برخی موارد ممکن است معنی‌دار نباشد

تعریف سلسله مراتب کلاس

type casting نمونه های نوع را برای یافتن اینکه آیا متعلق به یک نوع کلاس خاص باشند و همچنین، سلسله مراتب کلاس ها و کلاس های فرعی را برای قرار دادن آن ها در یک ترتیب مشترک بررسی می کند.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

بررسی نوع

بررسی نوع توسط اپراتور “is” انجام می شود. این اپراتور بررسی می کند که آیا نمونه به نوع کلاس فرعی خاصی تعلق دارد و اگر چنین باشد مقدار صحیح(true) و در غیر این صورت مقدار خطا(false) برگشت داده می شود.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

Downcasting

Downcasting نوع زیر کلاس می تواند توسط دو اپراتور (?as و !as) انجام شود. اپراتور ?as هنگامی که مقدار برابر nil باشد یک مقدار optional را برمیگرداند. از این روش برای بررسی به Downcasting موفق استفاده می شود.(به فرایند انتساب یک نوع ابتدایی به نوع دیگر cast کردن گفته می‌شود و عکس این عمل Downcasting  نامیده میشود)

همانطور که در بخش زنجیره optional درباره آن بحث شد هنگامی که مقدار nil باشد، !as مقدار unwrapping اجباری را return می دهد. از این روش برای ایجاد خطای زمان اجرا در صورت وجود خطای downcast استفاده می شود.

نکته:

downcasting در مواردی استفاده می‌شود که یک تابع سوپرکلاس مورد استفاده قرار گیرد یا از یک مشخصه سوپرکلاس بهره گرفته شود.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

تبدیل نوع: Any and Any Object

کلمه کلیدی “Any” برای نشان دادن نمونه ی متعلق به تمامی نوع ها از جمله انواع تابع استفاده می شود.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

AnyObject

برای نشان دادن نمونه نوع تمامی کلاس ها از کلید واژه “AnyObject” استفاده می شود.

هنگامی که برنامه فوق را با استفاده از playground اجرا کنیم نتیجه زیر را می گیریم:

کلیدواژه ها :

این خبر را به اشتراک بگذارید :