Avatar ·

كيفية التكرار على شريحة (slice) بترتيب عكسي في Go؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت هذه المشكلة: أحتاج إلى المرور على عناصر الشريحة من النهاية إلى البداية. في Python اعتدت كتابة `for i in reversed(arr)`، وفي JavaScript — `.reverse().forEach(...)`. لكن في Go، كما أفهم، لا توجد دالة مدمجة للتكرار العكسي.\n\nإليك مثال على الكود الذي لدي:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n numbers := []int{1, 2, 3, 4, 5}\n // أريد طباعة: 5, 4, 3, 2, 1\n for i := 0; i < len(numbers); i++ {\n fmt.Println(numbers[i]) // يطبع 1,2,3,4,5\n }\n}\n```\n\nحاولت تغيير شرط الحلقة: `for i := len(numbers); i > 0; i--`، لكن هذا يسبب panic (panic: runtime error: index out of range [5] with length 5). ثم حاولت `for i := len(numbers) - 1; i > 0; i--`، لكن