Avatar ·

كيفية حذف عنصر من شريحة في Golang: الطرق الصحيحة

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة عند العمل مع الشرائح (slices). أحتاج إلى حذف عنصر حسب الفهرس (index)، لكنني لا أجد دالة مدمجة تفعل ذلك. في Python اعتدت على `list.pop()` أو `del list[i]`، بينما في Go لا يوجد ذلك. إليك ما جربته: ```go package main import "fmt" func main() { fruits := []string{"apple", "banana", "cherry", "date"} // أريد حذف "banana" (الفهرس 1) // حاولت تعيين nil - لم يعمل // fruits[1] = nil // خطأ في الترجمة // حاولت عمل شريحة (slice)، لكن النتيجة غير صحيحة result := append(fruits[:1], fruits[2:]...) fmt.Println(result) // يطبع: [apple cherry date] fmt.Println(fruits) // يطبع: [apple cherry date date] - خطأ! // لماذا تغيرت الشريحة الأصلية؟ وكيف أحذف بشكل صحيح؟ } ``` لاحظت أنه بعد `append`، الشريحة الأصلية `fruits` تتغير أيضًا، على الرغم من أنني قمت بتعيين النتيجة لمتغير جديد. هذا غريب جدًا. أرجو التوضيح.