سويفت 101 - الطبقات ، المتغيرات ، الخصائص والأساليب

كما وعدت ، ها هي أول دفعة لي عن تعلم البرمجة بلغة سويفت الجديدة!

تحديد الطبقات في سويفت

تعرض التعليمة البرمجية التالية مثالًا لتعريف فئة Swift:

لإعلان فئة في Swift ، يمكنك استخدام الكلمة الأساسية للفصل متبوعة باسم الفئة. إذا كان يحتوي على فئة فائقة ، فأنت تضيف نقطتين واسم الفئة الفائقة. يشار إلى بداية ونهاية الفصل بأقواس مجعد الفتح والإغلاق.

في Swift ، يتم تعريف الفئات في ملف شفرة مصدر .swift واحد مقارنةً بالهدف- C ، حيث يتم تعريف الفئات في ملفين منفصلين ، ملف رأس (.h) وملف تطبيق (.m).

إعلان المتغيرات

تعرض التعليمة البرمجية التالية مثالًا عن إعلان متغير:

يمكنك بدء تعريف متغير باستخدام الكلمة الأساسية var متبوعةً باسم المتغير. بعد ذلك ، يمكنك إضافة نقطتين متبوعة بالنوع المتغير. بعد ذلك ، يمكنك تعيين قيمة للمتغير باستخدام عامل تشغيل المهمة (=).

في Swift ، إذا قمت بتعيين قيمة أولية لمتغير ، فلن تحتاج إلى تحديد نوع المتغير كما هو موضح في التعليمة البرمجية التالية:

يمكنك القيام بذلك نظرًا لأن Swift يحتوي على شيء يسمى " استنتاج الكتابة" حيث يمكن اكتشافه ، أو استنتاج نوع المتغير استنادًا إلى القيمة التي تحددها له.

في Objective-C ، يمكنك تعريف متغيرات المثيل على مستوى الفصل والمتغيرات المحلية ضمن الأساليب. في Swift ، لا توجد متغيرات على مستوى الفصل - فقط المتغيرات المحلية التي تعلنها ضمن الطرق. ومع ذلك ، يمكنك التصريح عن الخصائص على مستوى الفصل الدراسي (انظر قسم التصريح عن الخصائص أدناه).

نهاية النجمة

في Objective-C ، تستخدم علامة النجمة للإشارة إلى أن المتغير يحمل مؤشرًا إلى كائن. في Swift ، يمكن أن يحتوي الثابت أو المتغير على مؤشر إلى عنوان في الذاكرة (على الرغم من أنه ليس مؤشرًا مباشرًا) ، لكنك لست بحاجة إلى استخدام علامة نجمية في هذا السياق.

إعلان خصائص بسيطة

يعرض التعليمة البرمجية التالية مثالًا عن إعلان خاصية:

كما ترى ، فهي تشبه إلى حد كبير إعلان متغير ، إلا أنك تعلن عن خاصية على مستوى الفئة بدلاً من أن تكون ضمن طريقة.

كما هو الحال مع المتغيرات ، إذا قمت بتعيين قيمة أولية لخاصية ما ، فلن تضطر إلى تحديد نوع الخاصية. يمكنك أيضًا تهيئة الخصائص من خلال أساليب المُهيئ (راجع القسم أدناه في مُهيِّئات البيانات للحصول على التفاصيل.) تُظهر التعليمة البرمجية التالية مثالًا لإعلان خاصية دون تحديد نوع:

في الهدف- C ، كانت الخصائص عادةً تدعم متغيرات المثيل التي تم تخزين القيمة الفعلية للعنصر فيها. يعمل Swift على تبسيط الخصائص عن طريق توحيد مفاهيم الخصائص ومتغيرات المثيلات. الخصائص لم تعد تحتوي على متغير مثيل النسخ. يتم الإعلان عن كل شيء عن الممتلكات في مكان واحد.

في Swift ، لست مضطرًا إلى استخدام الكلمة الأساسية الذاتية للإشارة إلى خاصية ما لم تكن الطريقة التي تكتب بها الكود تحتوي على معلمة بنفس اسم الخاصية.

إعلان الخصائص المحسوبة

يحتوي Swift أيضًا على خصائص محسوبة مرتبطة بطرق get and set كما هو موضح في التعليمة البرمجية التالية:

في هذا المثال ، تحتوي فئة Thermometer على خاصية درجة حرارة فهرنهايت بسيطة وخاصية درجة حرارة محسوبة مئوية .

لاحظ أن أساليب الحصول على وضبط درجة الحرارة لا تشير إلى متغير مثيل ، لأنه لا يوجد شيء مثل متغير مثيل في Swift!

في هذه الحالة ، تقوم طريقة get باسترداد القيمة من خاصية temperatureFahrenheit ، وتحويلها إلى Celsius وإرجاع القيمة. تأخذ الطريقة المحددة القيمة التي تم تمريرها إليها ، وتحولها إلى فهرنهايت ، ثم تخزن النتيجة في خاصية درجة الحرارة فهرنهايت.

يتم تخزين القيمة التي تم تمريرها إلى أسلوب مجموعة الخاصية في معلمة مسماة ضمنيًا تسمى newValue . إذا كنت تريد استخدام اسم معلمة مختلف ، فيمكنك تحديد الاسم بين قوسين بعد المجموعة كما هو موضح في التعليمة البرمجية التالية:

يمكن أن يؤدي تحديد اسم المعلمة إلى تسهيل فهم الكود. في هذا المثال ، يؤدي تعيين اسم المعلمة إلى celsiusValue إلى توضيح أن الطريقة المحددة تقوم بتحويل القيمة من Celsius إلى فهرنهايت.

إعلان الأساليب

تحتوي التعليمة البرمجية التالية على مثال لإعلان طريقة Swift:

كما هو الحال مع Objective-C ، في Swift ، تقوم بتعريف أسلوب مثيل بين قوسي الفتح والإغلاق المجعدين للفئة التي تنتمي إليها.

لإعلان طريقة ما ، عليك أولاً تحديد الكلمة الأساسية func ، متبوعة باسم الطريقة. إذا كانت الطريقة تحتوي على معلمات ، فأنت تدرجها في الأقواس. لكل معلمة ، يمكنك تحديد اسم المعلمة متبوعة بنقطتين ، متبوعة بنوعها. إذا كانت الطريقة لها قيمة إرجاع ، فأنت تقوم بإضافة واصلة أكبر من العلامة ( -> ) متبوعة بنوع قيمة الإرجاع.

تحتوي التعليمة البرمجية التالية على مثال عن طريقة لا تقبل أي معلمات ولا تُرجع أي شيء:

كما ترون ، الأقواس مطلوبة بعد اسم الطريقة حتى لو لم تكن هناك معلمات. لا تحتاج الطريقة التي تُرجع أي شيء إلى مؤشر قيمة الإرجاع ( -> ) بعد الأقواس.

أساليب المبادر

تحتوي التعليمة البرمجية التالية على مثال لطريقة التهيئة المستخدمة لتهيئة الفصل.

يتم دائمًا تسمية أساليب المُهيِّن init وخلافًا للهدف- C ، لا تُرجع القيمة أبدًا. في المثال أعلاه ، تقبل طريقة init معلمة currentTemperature التي يمكنك من خلالها تمرير درجة الحرارة الأولية. ثم يتم تخزين هذه القيمة في درجة حرارة فهرنهايت.

يمكنك إنشاء طرق متعددة initalizer كما هو موضح في نموذج التعليمات البرمجية التالي:

في هذا المثال ، يتم تسمية كلا الطريقتين init ، وذلك لجعل الأسماء فريدة من نوعها ، يتم تعيين اسم خارجي للمعلمات - fromFahrenheit و fromCelsius . هذا يجعل أسماء الطريقة الكاملة init (fromFahrenheit :) و init (fromCelsius :) على التوالي.

تجدر الإشارة إلى أنه في Swift ، لا يتم توريث طرق init . من منظور عملي ، هذا يعني أنه لا يجب وضع أي رمز في طريقة init التي تريد أن تكون قادرًا على تجاوزها في فئة فرعية. إذا كان لديك رمز تريد تنفيذه أثناء مرحلة التهيئة للفصل وتريد أن تكون قادرًا على تجاوز تلك الشفرة في فئة فرعية ، فيمكنك إنشاء طريقة منفصلة ووضع رمز التهيئة في هذه الطريقة ثم استدعاء هذه الطريقة من الحرف الأول

إنشاء مثيل لفئة

فيما يلي مثال عن كيفية إنشاء مثيل لفئة:

كما ترون ، لإنشاء مثيل لفئة ما ، فإنك تعلن أن المتغير يحتفظ بمرجع للفئة ، واكتب علامة المساواة (مشغل الواجب) ، ثم اسم الفئة متبوعًا بالأقواس.

استنتاج

هذه هي بعض الأساسيات التي تحتاج إلى معرفتها للبدء في برمجة Swift. في المنشورات القادمة ، سوف أتعمق في اللغة لمساعدتك في أن تصبح بارعا في بناء جملة سويفت الجديدة وبنيتها.