Avatar ·

هل يوجد في Go حلقة foreach لتكرار عناصر الشريحة؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go بعد Python وJavaScript، وواجهت صعوبة غير متوقعة. في Python اعتدت كتابة `for item in my_list:`، وفي JS — `arr.forEach(item => ...)`. أما في Go فأرى فقط الحلقة التقليدية `for i := 0; i < len(slice); i++ {}` — هل هذا طبيعي؟ لدي شريحة بسيطة من السلاسل النصية: ```go names := []string{"Alice", "Bob", "Charlie"} ``` أريد طباعة كل اسم في سطر منفصل. في Python كنت سأكتب: ```python for name in names: print(name) ``` أما في Go فعليّ الكتابة هكذا: ```go for i := 0; i < len(names); i++ { fmt.Println(names[i]) } ``` هذا يعمل، لكنه يبدو ضخمًا. أشعر أنني أفقد بعض الصياغة الأنيقة. حاولت البحث عن "foreach in Go"، لكن الإجابات أربكتني — البعض يقول لا يوجد foreach، والبعض الآخر يظهر بناء الجملة مع `range`. أرجو التوضيح: 1. هل يوجد في Go ما يعادل foreach من اللغات الأخرى؟ 2. إذا كان موجودًا، فكيف أستخدمه بشكل صحيح؟ 3. هل هناك فرق في الأد