0Pricing
Swift Academy · درس

تركيب البروتوكولات باستخدام &

اجمعوا بروتوكولات متعددة في متطلب نوع واحد.

تركيب البروتوكولات باستخدام & درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا

يتيح تركيب البروتوكولات دمج عدة بروتوكولات في متطلب نوع واحد باستخدام `&`. وهذا هو الحل الذي تقدمه Swift للوراثة المتعددة.

التركيب الأساسي

```swift protocol Named { var name: String { get } } protocol Aged { var age: Int { get } } func describe(_ entity: Named & Aged) { print("\(entity.name) is \(entity.age)") } ``` إنّ `Named & Aged` متطلب نوع مؤقت، وليس بروتوكولًا جديدًا.

استخدام التركيب في معاملات الدوال

```swift protocol Drawable { func draw() } protocol Animatable { func animate() } func render(_ view: Drawable & Animatable) { view.draw() view.animate() } ```

تخزين الأنواع المركّبة

```swift var entity: Named & Aged = makePerson() entity.name // accessible entity.age // accessible ``` يقيّد نوع المتغير أعضاء البروتوكولات التي يمكن الوصول إليها.

التركيب مع الفئات

```swift protocol Configurable { func configure() } func setup(_ vc: T) { vc.configure() present(vc, animated: true) } ``` يمكنكم تركيب متطلب فئة مع بروتوكول باستخدام `&` ضمن الأنواع العامة.

تركيب البروتوكولات مقابل بروتوكول جديد

```swift // Don't create a new protocol just to combine: protocol NamedAndAged: Named, Aged {} // often unnecessary // Prefer inline composition at use sites: func describe(_ e: Named & Aged) { } ``` لا تنشئوا بروتوكولات جديدة إلا عندما يحتاج هذا الدمج إلى دوال امتداد.

استخدام typealias للتركيبات الطويلة

```swift typealias Service = Authenticable & Cacheable & Loggable func process(service: Service) { service.authenticate() service.log("processing") } ``` استخدموا `typealias` لتسمية التركيبات الشائعة الاستخدام.

التركيب في قيود الأنواع العامة

```swift func fetchAndCache(_ resource: T) async throws { let data = try await resource.fetch() resource.cache(data) } ```

وراثة البروتوكولات مقابل تركيبها

• الوراثة: `protocol C: A, B {}` — يرث C جميع متطلبات A وB • التركيب: `A & B` — مضمّن ولا ينشئ نوعًا جديدًا استخدموا الوراثة عندما يجب على جميع الأنواع المطابقة استيفاء المتطلبات كلها، واستخدموا التركيب في مواضع الاستدعاء.

مثال عملي: Delegate + DataSource

```swift func setup(_ vc: UITableViewDelegate & UITableViewDataSource) { tableView.delegate = vc tableView.dataSource = vc } ``` غالبًا ما تستوفي وحدة تحكم عرض واحدة كلا المتطلبين، ويتيح التركيب التعبير عن ذلك بإيجاز.

تحقّق سريع

ما المعامل الذي يدمج عدة بروتوكولات في متطلب نوع واحد؟

مراجعة

أهم النقاط: • `Protocol1 & Protocol2` — تركيب مضمّن • يُستخدم في المعاملات وأنواع الإرجاع وقيود الأنواع العامة • يتيح `typealias` تسمية التركيبات المستخدمة بكثرة • يُفضَّل التركيب على إنشاء بروتوكولات جديدة ذات جسم فارغ • يمكن دمج متطلبات الفئات: `UIViewController & MyProtocol` التالي: المطابقة الشرطية.

الأسئلة الشائعة

هل درس «تركيب البروتوكولات باستخدام &» مجاني؟

نعم — نص درس «تركيب البروتوكولات باستخدام &» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «تركيب البروتوكولات باستخدام &»؟

اجمعوا بروتوكولات متعددة في متطلب نوع واحد. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تركيب البروتوكولات باستخدام &»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. تركيب البروتوكولات باستخدام &
  2. التوافق الشرطي
  3. متطلبات Self وتصميم Equatable
  4. مبادئ التصميم الموجّه بالبروتوكولات
← العودة إلى Swift Academy