Go Academy · درس

المصفوفات: مجموعات ثابتة الطول

ثوابت المصفوفات والفهرسة والطول

الدرس 1 من 413 خطوة

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

ما المصفوفة؟

المصفوفة في Go هي تسلسل ثابت الطول من عناصر من النوع نفسه. ويُعدّ الطول جزءًا من النوع: [3]int و[4]int نوعان مختلفان.

  • المصفوفات أنواع قيم، لذا ينسخ الإسناد المصفوفة بأكملها
  • يكون الطول معروفًا دائمًا وقت الترجمة
  • نادرًا ما تُستخدم مباشرةً، إذ تُفضَّل الشرائح في معظم المهام

حرفيات المصفوفات

أعلنوا عن المصفوفات وهيّئوها باستخدام حرفية:

package main

func main() {
    primes := [5]int{2, 3, 5, 7, 11}
    names  := [3]string{"Alice", "Bob", "Carol"}
    flags  := [4]bool{true, false, true, false}
    _ = primes; _ = names; _ = flags
}

طول المصفوفة والفهرسة

استخدموا len() لمعرفة الطول، والفهرسة التي تبدأ من الصفر لقراءة العناصر وكتابتها:

package main
import "fmt"

func main() {
    scores := [3]int{90, 85, 92}
    fmt.Println(len(scores)) // 3
    fmt.Println(scores[0])   // 90
    scores[1] = 100
    fmt.Println(scores)      // [90 100 92]
}

علامة الحذف في حرفيات المصفوفات

استخدموا [...] ليعدّ المترجم العناصر نيابةً عنكم:

package main
import "fmt"

func main() {
    days := [...]string{"Mon","Tue","Wed","Thu","Fri"}
    fmt.Println(len(days)) // 5
}

المصفوفات أنواع قيم

عند إسناد مصفوفة أو تمريرها، تنسخ Go المصفوفة بأكملها. ولا يؤثر تعديل النسخة في الأصل:

package main
import "fmt"

func main() {
    a := [3]int{1, 2, 3}
    b := a     // full copy
    b[0] = 99
    fmt.Println(a) // [1 2 3] — unchanged
    fmt.Println(b) // [99 2 3]
}

مقارنة المصفوفات

يمكن مقارنة المصفوفات من النوع والطول نفسيهما باستخدام == و!=:

package main
import "fmt"

func main() {
    x := [3]int{1, 2, 3}
    y := [3]int{1, 2, 3}
    z := [3]int{1, 2, 4}
    fmt.Println(x == y) // true
    fmt.Println(x == z) // false
}

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

يمكن تداخل المصفوفات لتكوين شبكات أو مصفوفات رياضية:

package main
import "fmt"

func main() {
    grid := [2][3]int{
        {1, 2, 3},
        {4, 5, 6},
    }
    fmt.Println(grid[1][2]) // 6
}

التكرار على مصفوفة

استخدموا حلقة for تقليدية أو range للتكرار:

package main
import "fmt"

func main() {
    nums := [4]int{10, 20, 30, 40}
    for i, v := range nums {
        fmt.Printf("[%d] = %d\n", i, v)
    }
}

المصفوفات مقابل الشرائح

الاختلافات الأساسية:

  • المصفوفة: حجم ثابت، ونوع قيمة، والحجم جزء من النوع
  • الشريحة: حجم ديناميكي، ونوع مرجعي، ومدعومة بمصفوفة
  • عمليًا، استخدموا الشرائح ما لم تحتاجوا إلى حجم ثابت وقت الترجمة (مثل تجزئة SHA-256 من النوع [32]byte)

الأخطاء الشائعة

انتبهوا إلى ما يلي:

  • الفهرس خارج النطاق، إذ تصدر Go حالة panic وقت التشغيل إذا كان i >= len(arr)
  • يؤدي تمرير المصفوفات الكبيرة إلى الدوال إلى عمليات نسخ مكلفة، لذا استخدموا المؤشرات أو الشرائح بدلًا من ذلك
  • لا تنسوا أن [3]int و[4]int نوعان غير متوافقين

تحقّق سريع

ما طول [...]string{"a","b","c"}؟

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

أهم النقاط:

  • للمصفوفات طول ثابت وقت الترجمة، ويُعدّ هذا الطول جزءًا من النوع
  • المصفوفات أنواع قيم، لذا ينسخ الإسناد جميع العناصر
  • استخدموا len() والفهرسة التي تبدأ من الصفر
  • فضّلوا الشرائح لمعظم احتياجات المجموعات

مهمة تدريبية

أعلنوا عن مصفوفة من 5 أعداد صحيحة، وأسندوا القيمة 100 إلى العنصر الثالث، ثم اطبعوا المصفوفة باستخدام range.

البدء مجانًا

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

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

الدورات
51
الدروس
203

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

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

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

ماذا ستتعلم في «المصفوفات: مجموعات ثابتة الطول»؟

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

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

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

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

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

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

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

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

  1. المصفوفات: مجموعات ثابتة الطول
  2. الشرائح: قوائم ديناميكية
  3. الخرائط: مخازن المفتاح والقيمة
  4. التكرار على المجموعات باستخدام range
← العودة إلى Go Academy