Swift Academy · درس

المصفوفات ثنائية الأبعاد والمجموعات المتداخلة

تعامَل مع مصفوفات المصفوفات وتسطيحها باستخدام flatMap وcompactMap

الدرس 4 من 412 خطوة

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

مرحبًا

تمثّل المصفوفات ثنائية الأبعاد والمجموعات المتداخلة الشبكات والجداول والرسوم البيانية والبيانات الهرمية. يتعامل Swift معها بصورة طبيعية؛ فما عليكم سوى تداخل أنواع المصفوفات.

التصريح عن مصفوفة ثنائية الأبعاد

```swift var grid: [[Int]] = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] print(grid[1][2]) // 6 ```

تغيير العناصر المتداخلة

```swift var matrix = [[0,0,0],[0,0,0],[0,0,0]] matrix[1][1] = 1 // [[0,0,0],[0,1,0],[0,0,0]] ```

إنشاء شبكة ثنائية الأبعاد باستخدام map

```swift let rows = 3, cols = 4 let grid = (0..

التكرار على مصفوفة ثنائية الأبعاد

```swift for row in grid { for val in row { print(val, terminator: " ") } print() } ``` أو باستخدام الفهارس عند الحاجة إلى التغيير: ```swift for r in grid.indices { for c in grid[r].indices { ... } } ```

استخدام flatMap للتسطيح

```swift let nested = [[1,2,3],[4,5],[6]] let flat = nested.flatMap { $0 } // [1,2,3,4,5,6] ``` يكون ذلك مفيدًا عندما تحتاجون إلى معالجة جميع العناصر كتسلسل واحد.

المصفوفات المتعرجة

لا تحتاج المصفوفات ثنائية الأبعاد في Swift إلى صفوف متساوية الطول: ```swift let jagged: [[Int]] = [[1],[2,3],[4,5,6]] print(jagged[2].count) // 3 ``` كل صف هو مصفوفة مستقلة.

مصفوفة من القواميس

```swift let users: [[String: Any]] = [ ["name": "Alice", "age": 30], ["name": "Bob", "age": 25] ] for user in users { print(user["name"] ?? "?") } ```

مصفوفة من البنى

يُفضّل استخدام البنى ذات الأنواع المحددة بدلًا من `[String: Any]`: ```swift struct User { let name: String; let age: Int } var users = [User(name:"Alice",age:30), User(name:"Bob",age:25)] let sorted = users.sorted { $0.age < $1.age } ```

الشبكات المتناثرة باستخدام Dictionary

بالنسبة إلى البيانات المتناثرة، استخدموا قاموسًا بدلًا من المصفوفات المتداخلة: ```swift var sparse: [SIMD2: String] = [:] sparse[SIMD2(0,0)] = "start" sparse[SIMD2(9,9)] = "end" ``` يوفّر ذلك بحثًا بتعقيد O(1) من دون هدر الذاكرة على الخلايا الفارغة.

اختبار سريع

ماذا تُرجع `nested.flatMap { $0 }` عند تطبيقها على `[[1,2],[3,4]]`؟

مراجعة

أهم النقاط: • `[[T]]` — التصريح عن المصفوفات ثنائية الأبعاد والوصول إليها باستخدام `[row][col]` • `.flatMap { $0 }` — تسطيح المصفوفات المتداخلة • استخدموا البنى بدلًا من `[String: Any]` لضمان أمان الأنواع • المصفوفات المتعرجة مناسبة؛ فالصفوف مستقلة • استخدموا `Dictionary` للشبكات المتناثرة اكتملت الدورة! التالي: عمليات CRUD على Dictionary.
البدء مجانًا

تعلم Swift مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
122
الدروس
409

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

هل درس «المصفوفات ثنائية الأبعاد والمجموعات المتداخلة» مجاني؟

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

ماذا ستتعلم في «المصفوفات ثنائية الأبعاد والمجموعات المتداخلة»؟

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

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

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

كم من الوقت يستغرق درس «المصفوفات ثنائية الأبعاد والمجموعات المتداخلة»؟

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

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

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

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

  1. إنشاء المصفوفات وتعديلها
  2. الفرز والبحث والتقطيع
  3. Map وFilter وReduce على المصفوفات
  4. المصفوفات ثنائية الأبعاد والمجموعات المتداخلة
← العودة إلى Swift Academy