تخطَّ إلى المحتوى

🦅 شرح Swift

البروتوكولات (Protocols)

الدرس 19 من 25· ⏱ 1 دقائق قراءة

ما هو البروتوكول؟

عقد يحدّد متطلّبات (طرقًا وخصائص) على الأنواع تبنّيه (يشبه interface):

protocol Describable {
    var name: String { get }
    func describe() -> String
}

struct Product: Describable {
    var name: String
    func describe() -> String {
        return "المنتج: \(name)"
    }
}

تبنّي عدّة بروتوكولات

protocol Identifiable { var id: Int { get } }

struct User: Describable, Identifiable {
    var name: String
    var id: Int
    func describe() -> String { "مستخدم \(name)" }
}

التنفيذ الافتراضي عبر extension

extension Describable {
    func describe() -> String {
        return "كائن: \(name)"      // افتراضي للجميع
    }
}

البروتوكول كنوع

let items: [Describable] = [Product(name: "كتاب")]
for item in items { print(item.describe()) }

💡 "البرمجة الموجّهة بالبروتوكولات" فلسفة أساسية في Swift و SwiftUI.

🎯 التالي: دوال التمديد.

هل كان هذا الدرس مفيدًا؟