زبان برنامه نویسی سوییفت چیست ؟

سویفت یک زبان برنامه‌نویسی چند شیوه‌ای و از نوع کامپایلری است که برای توسعهٔ iOS، macOS، watchOS و tvOS توسط شرکت اپل ساخته‌شده‌است. سویفت برای کار با فریمورک‌های Cocoa و Cocoa Touch اپل و تعامل با حجم عظیمی از کدهای Objective-C نوشته شده برای محصولات اپل طراحی شده‌است. سویفت می‌خواهد جلوی خطاهای برنامه‌نویسی را بیشتر بگیرد و امنیت بیشتری نسبت به Objective-C داشته باشد و در عین حال نگارش مختصرتر و کوتاه‌تری داشته باشد. این زبان توسط کامپایلر LLVM که درون برنامهٔ Xcode قرار دارد (و برای لینوکس به صورت برنامهٔ جدا در دسترس است) ساخته می‌شود و سپس از runtime زبان Objective-C بهره می‌برد که اجازه می‌دهد کدهای سویفت کنار کدهای C، C++ و Objective-C در کنار هم در یک برنامه اجرا شود.

ویژگی های زبان برنامه نویسی سوئفیت (Swift)

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

پشتیبانی رشته در برنامه نویسی سوئیفت

تحت محیط های Cocoa و Cocoa Touch، بسیاری از کلاس های متداول بخشی از کتابخانه بنیاد کیت بودند. این شامل کتابخانه رشته NSString (با استفاده از یونیکد)، کلاس های مجموعه NSArray و NSDociation و موارد دیگر بود. Objective-C مقادیر مختلفی از syntactic sugar را فراهم می آورد تا اجازه دهد برخی از این اشیاء در داخل زبان ایجاد شده و پس از ایجاد، اشیاء با فراخوانی شی دستکاری شوند.

کنترل دسترسی در برنامه نویسی سوئیفت

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

Optionals و chaining در در برنامه نویسی سوئیفت

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

انواع مقدار در برنامه نویسی سوئیفت

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

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

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

کتابخانه ها، ران تایم و توسعه در برنامه نویسی سوئیفت

Swift از سیستم ران تایم مشابه Objective-C استفاده می کند، اما به iOS 7 یا macOS 10.9 یا بالاتر نیاز دارد. کد Swift و Objective-C را می توان در یک برنامه و با پسوند، C و ++C نیز استفاده کرد و برخلاف C و ++C کد را نمی توان مستقیم از Swift استفاده کرد. بسته بندی Objective-C یا C باید بین Swift و ++C ایجاد شود. در مورد Objective-C، سوئیفت دسترسی قابل توجهی به مدل شی دارد و می تواند برای زیر کلاس، گسترش و استفاده از کد Objective-C برای پشتیبانی از پروتکل استفاده شود. این گفتگو صحیح نیست: یک کلاس Swift را نمی توان در Objective-C طبقه بندی کرد.

مدیریت حافظه در برنامه نویسی سوئیفت

سوئیفت برای مدیریت حافظه از شمارش خودکار رفرنس (ARC) استفاده می کند. اپل در Objective-C به مدیریت حافظه دستی احتیاج داشت ، اما ARC را معرفی کرد تا امکان تخصیص و جابجایی آسانتر حافظه را فراهم کند. یکی از مشکلات ARC امکان ایجاد چرخه رفرنس قوی است که در آن اشیاء به یکدیگر رجوع می کنند به گونه ای که می توانید با مراجعه به منابع دیگر به عنوان موردی که از آن شروع کرده اید برسید. این باعث می شود تا وقتی که آزاد نمی شوند، به حافظه نشت کنند. Swift برای جلوگیری از چرخه های رفرنس قوی، کلمات کلیدی را ضعیف و ناشناخته ارائه می دهد. به طور معمول، روابط پدر و فرزند از رفرنس قوی استفاده می کند در حالی که یک فرزند یا والدین می توانند از یک رفرنس ضعیف استفاده کنند، جایی که والدین و فرزندان می توانند با هم ارتباط نداشته باشند، یا در جایی که فرزند همیشه والد دارد، یا بدون فرزند شناخته نمی شود، اما والدین ممکن است فرزند نداشته باشند. رفرنس ضعیف باید متغیرهای اختیاری باشند، زیرا می توانند تغییر کنند و صفر شوند. ویژگی های Swift به گونه ای طراحی شده اند که با هم کار می کنند تا زبانی را ایجاد کنند که قدرتمند و در عین حال سرگرم کننده باشد. برخی از ویژگی های اضافی Swift عبارتند از:

بسته شدن با نشانگرهای عملکرد

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

تکرار سریع و مختصر در یک محدوده یا مجموعه

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

الگوهای برنامه نویسی عملکردی، به عنوان مثال، نقشه و فیلتر

خطای قدرتمند هنگام کار با داخلی

جریان کنترل پیشرفته با کلمات کلیدی انجام، محافظت، تعویق و تکرار

زبان برنامه نویسی سوییفت چیست ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *