Avatar ·

كيفية الحصول على شريحة من المفاتيح من map في Go: حل بسيط وفعال

مرحبًا بالجميع! أنا مطور Go مبتدئ وواجهت مهمة تبدو بسيطة، لكنني لا أستطيع إيجاد حل أنيق. لدي map، لنقل `map[string]int`، حيث المفاتيح هي أسماء المستخدمين والقيم هي أعمارهم. أحتاج إلى الحصول على قائمة بجميع المفاتيح (الأسماء) كشريحة `[]string`، على سبيل المثال، لتمريرها إلى دالة تطبع قائمة المستخدمين. في Python كنت سأكتب ببساطة `list(my_dict.keys())`. في JavaScript — `Object.keys(myObj)`. أما في Go فأرى حاليًا فقط خيار التكرار اليدوي: ```go users := map[string]int{ "Alice": 25, "Bob": 30, "Charlie": 22, } var keys []string for k := range users { keys = append(keys, k) } ``` هذا يعمل، لكنه يبدو وكأنه حل بدائي مطول. أعتقد أنه لمثل هذه العملية المتكررة يجب أن تكون هناك دالة مدمجة في المكتبة القياسية لـ Go. بحثت في `reflect` و `maps` (Go 1.21+)، لكنني لم أجد إجابة واضحة. الأسئلة: 1. هل التكرار اليدوي هو الحل الوحيد؟