ما هي أسهل طريقة لفرز شريحة من الهياكل حسب حقل عشوائي في Go؟
إجابة مختصرة: استخدم `sort.Slice` والدوال المجهولة
```go
sort.Slice(people, func(i, j int) bool {
return people[i].Name < people[j].Name
})
```
تحياتي للجميع! أنا مبتدئ في لغة Go ولا أستطيع فهم كيفية فرز الشرائح من الهياكل. لنفترض أن لدي هذا الكود:
```go
type Person struct {
Name string
Age int
}
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
```
أريد فرز هذه الشريحة حسب الحقل `Name` (ترتيب أبجدي). ثم ربما حسب الحقل `Age` (تصاعديًا). في لغات أخرى (مثل Python) كنت سأمرر مفتاح الفرز ببساطة: `sorted(people, key=lambda p: p.name)`. لكن في Go أرى أنني بحاجة لكتابة نوع منفصل وتنفيذ واجهة `sort.Interface` بثلاث دوال — `Len()` و `Less()` و `Swap()`. هذا كثير جدًا من الكود!
هل هناك طريقة أقصر وأكثر أناقة لفعل ذلك؟ ربما دالة مدمجة أو حزمة تسمح لي بتحديد اسم الحقل فقط؟ أم أنني محكوم بكتابة 10 أسطر من الكود لكل عملية فرز؟ شكرًا مقدمًا على المساعدة!
🍪 Мы используем файлы cookie для авторизации, аналитики и улучшения работы сайта.
Продолжая пользоваться сайтом, вы соглашаетесь с нашей
политикой конфиденциальности.