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

append

الإضافة لنهاية شريحة append

append دالة مدمجة تضيف عنصرًا أو أكثر لنهاية شريحة، وتعيد الشريحة المحدَّثة التي يجب حفظها دائمًا.

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

يمكن أيضًا دمج شريحتين بنشر عناصر الثانية داخل الأولى عبر `...`، وكحالة خاصة يمكن إلحاق نص ببايتات مباشرة.

الصياغة

slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...)

📄 مثال

nums := []int{1, 2, 3}
nums = append(nums, 4)          // [1 2 3 4]
nums = append(nums, 5, 6)       // [1 2 3 4 5 6]

more := []int{7, 8}
nums = append(nums, more...)    // دمج شريحتين

أهم النقاط

العنصرالوظيفة
append(s, v)إضافة عنصر واحد لنهاية الشريحة
append(s, v1, v2)إضافة عدّة عناصر دفعة واحدة
append(s1, s2...)دمج شريحة ثانية بنشر عناصرها

💡 نصائح عملية

  • احفظ نتيجة append دائمًا بنفس المتغيّر: s = append(s, x) — تجاهل النتيجة خطأ شائع يفقد العناصر المضافة
  • لو تعرف الحجم النهائي التقريبي، ابدأ بـ make مع سعة مناسبة لتقليل عمليات إعادة التخصيص

⚠️ أخطاء شائعة

  • استدعاء append(s, x) دون إسناد النتيجة لمتغيّر — القيمة الجديدة تُحسب وتُرمى، والشريحة الأصلية لا تتغيّر
  • الاعتماد على أن append يعدّل دائمًا المصفوفة الأصلية في مكانها — أحيانًا يخصّص مصفوفة جديدة كليًّا فتنفصل الشريحتان القديمة والجديدة عن بعض

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار GO الكامل بالعربي.