كيفية الحصول على شريحة من المفاتيح من map في Go: دليل كامل
مرحبًا بالجميع! بدأت تعلم Go مؤخرًا وواجهت مشكلة تبدو بسيطة، لكنني لا أجد حلاً أنيقًا.
لدي map تحتوي على بيانات المستخدمين:
users := map[int]string{
1: "Alice",
2: "Bob",
3: "Charlie",
4: "Diana",
}
أحتاج إلى الحصول على قائمة بجميع معرفات المستخدمين (المفاتيح) على شكل شريحة []int. في Python كنت سأكتب ببساطة list(users.keys())، لكن في Go لا توجد هذه الدالة البسيطة.
حاولت القيام بذلك بهذه الطريقة:
var keys []int
for key := range users {
keys = append(keys, key)
}
هذا يعمل، لكن يبدو لي أن هذا كثير من الكلام. هل هناك دالة مدمجة أو طريقة أكثر اصطلاحية؟ خاصة أنني قلق بشأن:
- ترتيب المفاتيح — هل هو دائمًا عشوائي؟
- ماذا عن map الكبيرة (ملايين الإدخالات)؟
- هل يمكن فعل ذلك في سطر واحد؟
سأكون ممتنًا للأمثلة.