0Pricing
Swift Academy · درس

القيم الخام وCaseIterable

تعرّفوا إلى التعدادات المعتمدة على String أو Int أو أنواع RawRepresentable أخرى، بالإضافة إلى allCases.

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

مرحبًا

يمكن لتعدادات Swift امتلاك *قيم أصلية*، وهي قيم حرفية مخزنة مع كل حالة. ويمنحك التوافق مع `CaseIterable` مجموعةً من جميع الحالات تلقائيًا.

تعدادات القيم الأصلية

```swift enum Direction: String { case north = "N" case south = "S" case east = "E" case west = "W" } print(Direction.north.rawValue) // "N" ```

القيم الأصلية الصحيحة المتزايدة تلقائيًا

```swift enum Planet: Int { case mercury = 1 case venus // 2 (auto) case earth // 3 case mars // 4 } print(Planet.earth.rawValue) // 3 ```

تسمية القيم الأصلية النصية تلقائيًا

```swift enum Color: String { case red, green, blue } print(Color.blue.rawValue) // "blue" — auto-named ``` عند استخدام قيم أصلية نصية، تساوي القيمة الأصلية اسم الحالة إذا حذفت الإسناد.

init?(rawValue:) — قابل للفشل

```swift if let dir = Direction(rawValue: "N") { print(dir) // Direction.north } let invalid = Direction(rawValue: "X") // nil ``` يعيد المهيئ القابل للفشل، الذي يُنشأ تلقائيًا، القيمة nil للقيم الأصلية غير المعروفة.

CaseIterable

```swift enum Season: CaseIterable { case spring, summer, autumn, winter } print(Season.allCases) // [.spring,.summer,.autumn,.winter] print(Season.allCases.count) // 4 ```

التكرار على جميع الحالات

```swift for season in Season.allCases { print(season) } let picker = Season.allCases.map { "\($0)".capitalized } ```

CaseIterable مع القيم الأصلية

```swift enum Suit: String, CaseIterable { case hearts="♥", diamonds="♦", clubs="♣", spades="♠" } print(Suit.allCases.map { $0.rawValue }) // ["♥","♦","♣","♠"] ```

القيم الأصلية من أجل Codable

تعمل التعدادات ذات القيم الأصلية النصية بسلاسة مع `Codable`: ```swift enum Status: String, Codable { case active, inactive, pending } struct User: Codable { var status: Status } // JSON "active" decodes to .active automatically ```

القيم الأصلية لأقنعة بتات الأعلام

```swift struct Permission: OptionSet { let rawValue: Int static let read = Permission(rawValue: 1 << 0) static let write = Permission(rawValue: 1 << 1) static let execute = Permission(rawValue: 1 << 2) } var p: Permission = [.read, .write] print(p.contains(.read)) // true ```

تحقق سريع

ما البروتوكول الذي يتيح الوصول إلى جميع حالات التعداد عبر `allCases`؟

مراجعة

أهم النقاط: • القيم الأصلية: `enum E: String { case a = "x" }` • تتزايد القيم الأصلية من نوع Int تلقائيًا؛ وتكون القيم الأصلية من نوع String مساوية لاسم الحالة افتراضيًا • يُنشأ `init?(rawValue:)` تلقائيًا ويكون قابلًا للفشل • يوفر `CaseIterable` الخاصية الثابتة `.allCases` • اجمع بين `String, CaseIterable` لإنشاء القوائم وعناصر الاختيار التالي: القيم المرتبطة.

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

هل درس «القيم الخام وCaseIterable» مجاني؟

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

ماذا ستتعلم في «القيم الخام وCaseIterable»؟

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

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

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

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

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

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

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

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

  1. القيم الخام وCaseIterable
  2. القيم المرتبطة للبيانات الغنية
  3. التعدادات غير المباشرة والبنى التكرارية
  4. نمذجة آلات الحالات باستخدام التعدادات
← العودة إلى Swift Academy