متطلبات النوع مقابل متطلبات النسخة
ميّز بين المتطلبات الساكنة (على مستوى النوع) ومتطلبات النسخة (على مستوى الكائن) في Protocols، وتعلّم كيفية تطبيق الأنواع الممتثلة لها.
متطلبات النوع مقابل متطلبات النسخة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 3 دروس في المجموع.
نظرة عامة
يمكن للبروتوكولات أن تفرض أعضاء مثيل أو أعضاء ثابتة. ويساعدك التمييز بينهما على تصميم واجهات برمجية واضحة.
متطلب المثيل
يجب أن ينفذ كل مثيل من النوع المتوافق متطلبات المثيل.
protocol Drawable {
func draw() -> String
}
struct Circle: Drawable {
func draw() -> String { "Drawing a circle" }
}
print(Circle().draw())متطلب ثابت
تُلبّى المتطلبات الثابتة بواسطة أعضاء على مستوى النوع، سواء أكانت خصائص أم أساليب.
protocol Identifiable {
static var tag: String { get }
}
struct User: Identifiable {
static var tag: String { "USR" }
}
print(User.tag)الثوابت في الأصناف
يمكن للأصناف تنفيذ المتطلبات الثابتة باستخدام static أو class، مع السماح بالتجاوز.
protocol Describable {
static func describeType() -> String
}
class Animal: Describable {
class func describeType() -> String { "Animal type" }
}
print(Animal.describeType())مثال مختلط
تجمع البروتوكولات غالبًا بين المتطلبات الثابتة ومتطلبات المثيل لتوفير المرونة.
protocol Logger {
static var system: String { get }
func log(_ msg: String)
}
struct ConsoleLogger: Logger {
static let system = "console"
func log(_ msg: String) { print("[\\(Self.system)]", msg) }
}
let logger = ConsoleLogger()
logger.log("hello")ملاحظات
ملاحظات:
- استخدم static للمعلومات الخاصة بالنوع بأكمله أو للمصانع.
- استخدم instance للسلوك الخاص بكل كائن.
- يمكن للأصناف استخدام
classللسماح بتجاوز الأعضاء الثابتة.
الثابت مقابل المثيل
تحقق سريع: ما الذي يميز المتطلب الثابت؟
مراجعة
مراجعة: تنطبق متطلبات المثيل على كل كائن. أما المتطلبات الثابتة فتنطبق على مستوى النوع. ويمكن للأصناف استخدام class للأعضاء الثابتة القابلة للتجاوز.
الأسئلة الشائعة
هل درس «متطلبات النوع مقابل متطلبات النسخة» مجاني؟
نعم — نص درس «متطلبات النوع مقابل متطلبات النسخة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 3 دروس في المجموع.
ماذا ستتعلم في «متطلبات النوع مقابل متطلبات النسخة»؟
ميّز بين المتطلبات الساكنة (على مستوى النوع) ومتطلبات النسخة (على مستوى الكائن) في Protocols، وتعلّم كيفية تطبيق الأنواع الممتثلة لها. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «متطلبات النوع مقابل متطلبات النسخة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات Protocols وExtensions
- امتدادات Protocol مقابل امتدادات النوع
- متطلبات النوع مقابل متطلبات النسخة