English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

هيكل Swift

هيكل Swift هو بناء مكونات الكود بشكل عام وسهل التكيف.

يمكننا تعريف خصائص الهيكل (مثل القيم الثابتة والمعلمات) وإضافة طرق، مما يوسع وظائف الهيكل.

مختلف عن C و Objective C:

  • لا تحتاج هيكل إلى تحتوي على ملف التنفيذ والواجهة.

  • يسمح الهيكل بإنشاء ملف واحد فقط، ويقوم النظام بإنشاء واجهة خارجية موجهة نحو الكود الآخر تلقائيًا.

يتم دائمًا نقل الهيكل بالنسخ في الكود، لذا لا يمكن تعديل قيمته.

النحو

نستخدم الكلمة المفتاحية struct لتحديد الهيكل:

struct nameStruct { 
   تعريف 1
   تعريف 2
   ……
   تعريف N
}

مثال عبر الإنترنت

قمنا بتعريف هيكل اسمه MarkStruct، يحتوي على نقاط الاسمية لثلاثة مواد أكاديمية، نوع البيانات هو Int:

struct MarkStruct{
   عدد_النقاط: Int
   عدد_النقاط: Int
   عدد_النقاط: Int
}

يمكننا الوصول إلى أعضاء الهيكل من خلال اسم الهيكل.

استخدام هيكل العينة let الكلمات المفتاحية:

استيراد Cocoa
struct studentMarks {
   var mark1 = 100
   var mark2 = 78
   var mark3 = 98
}
let marks = studentMarks()
print("Mark1 هو \(marks.mark1)")
print("Mark2 هو \(marks.mark2)")
print("Mark3 هو \(marks.mark3)")

نتيجة تنفيذ البرنامج أعلاه كالتالي:

Mark1 هو 100
Mark2 هو 78
Mark3 هو 98

في المثال، نستخدم اسم هيكل 'studentMarks' لاستدعاء درجات الطالب. يتم تعيين أعضاء هيكل إلى mark1, mark2, mark3،نوع البيانات هو عدد صحيح.

ثم نستخدم let let

في النهاية،نستخدم كلمة المفتاح studentMarks() لإنشاء مثال هيكلية ونقوم بتوصيله إلى marks. . باستخدام الرمز # لاستدعاء قيمة عضو هيكلية.

في هذا المثال،نقوم بإنشاء هيكلية باستخدام مثال هيكلية ونسخ هيكلية:

استيراد Cocoa
struct MarksStruct {
   عدد_النقاط: Int
   init(mark: Int) {
      self.mark = mark
   }
}
عدد_النقاط aStruct = MarksStruct(mark: 98)
عدد_النقاط bStruct = aStruct // aStruct و bStruct هي هيكلية تستخدم نفس القيم!
bStruct.mark = 97
اطبع(aStruct.mark) // 98
اطبع(bStruct.mark) // 97

نتيجة تنفيذ البرنامج أعلاه كالتالي:

98
97

تطبيقات هيكلية

في شيفرةك،يمكنك استخدام هيكلية لتحديد نوع بياناتك المخصصة.

مثال هيكلية دائمًا يعتمد على نقل القيم لتحديد نوع بياناتك المخصصة.

وفقًا للمعايير العامة،عندما تتوفر إحدى الشروط التالية،فكر في بناء هيكلية:

  • الغرض الرئيسي لهيكلية هو استخدامها لتبني قيم بسيطة مرتبطة.

  • من المتوقع أن يتم نسخ البيانات الم封装ة عند تخصيص أو نقل مثال هيكلية وليس نقل المراجع.

  • أي صفات نوع القيمة المخزنة في هيكلية،سوف يتم نسخها وليس نقل المراجع.

  • هيكلية لا تحتاج إلى استيراد خصائص أو سلوكيات من نوع موجود مسبقًا.

على سبيل المثال،في المواقف التالية يناسب استخدام هيكلية:

  • حجم شكل هندسي،تقوم بتبنيعرضالصفات والطولالصفات،وكلهاالعددالنوع.

  • مسار معين في نطاق معين،تقوم بتبنيالبدايةالصفات والطولالصفات،وكلهاالعددالنوع.

  • نقطة في نظام الإحداثيات الثلاثي الأبعاد،تقوم بتبنيx،yوالzالصفات،وكلهاالعددالنوع.

مثال على هيكلية يعتمد على نقل القيم بدلاً من نقل المراجع.

استيراد Cocoa
struct markStruct{
    عدد_النقاط: Int
    عدد_النقاط: Int
    عدد_النقاط: Int
    
    init(mark1: Int, mark2: Int, mark3: Int){
        self.mark1 = mark1
        self.mark2 = mark2
        self.mark3 = mark3
    }
}
اطبع("الحصول على درجة عالية:")
عدد_النقاط = markStruct(mark1: 98, mark2: 96, mark3: 100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)
print("الحصول على درجة منخفضة:")
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

نتيجة تنفيذ البرنامج أعلاه كالتالي:

الحصول على درجة عالية:
98
96
100
الحصول على درجة منخفضة:
34
42
13

في الأمثلة السابقة قمنا بتعريف الهيكل markStruct، ثلاثة خصائص أعضاء: mark1، mark2 و mark3. يتم استخدام خصائص الأعضاء في الهيكل باستخدام كلمة المفتاح self.

من خلال الأمثلة يمكننا فهم جيدًا أن مثال الهيكل يتم من خلال نقل القيم.