Avatar ·

Go में किसी भी फ़ील्ड के अनुसार स्ट्रक्ट array को सॉर्ट करने का सबसे आसान तरीका क्या है?

सभी को नमस्कार! मैंने अभी-अभी Go सीखना शुरू किया है और सॉर्टिंग की समस्या का सामना करना पड़ा। मेरे पास User स्ट्रक्ट का एक array है:

type User struct {
    Name string
    Age  int
    Score float64
}

users := []User{
    {"Анна", 25, 88.5},
    {"Борис", 30, 92.1},
    {"Виктор", 22, 85.0},
}

मुझे इस array को उपयोगकर्ता की पसंद के अनुसार अलग-अलग फ़ील्ड के आधार पर सॉर्ट करना है: कभी नाम (वर्णमाला क्रम) से, कभी उम्र से, कभी स्कोर से। मुझे पता है कि Go में sort पैकेज है, लेकिन प्रत्येक फ़ील्ड के लिए Less(i, j int) bool के साथ अलग फ़ंक्शन लिखना पड़ता है। यह बहुत असुविधाजनक है, खासकर यदि कई फ़ील्ड हों।

उदाहरण के लिए, उम्र के अनुसार सॉर्टिंग:

sort.Slice(users, func(i, j int) bool {
    return users[i].Age < users[j].Age
})

और अगर नाम के अनुसार सॉर्ट करना हो? तो नया anonymous function लिखना पड़ता है। और अगर 10 फ़ील्ड हों? या पहले उम्र और फिर नाम के अनुसार सॉर्ट करना हो?

Python में मैं बस लिखता...