هل يوجد في 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. هل هناك فرق في الأد