Avatar ·

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

सभी को नमस्ते! मैं Go में नया हूँ और स्ट्रक्चर के स्लाइस को सॉर्ट करने में समस्या हो रही है। मान लीजिए, मेरे पास यह कोड है: ```go type Person struct { Name string Age int } people := []Person{ {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, } ``` मैं इस स्लाइस को `Name` फ़ील्ड के अनुसार (वर्णमाला क्रम में) सॉर्ट करना चाहता हूँ। बाद में, शायद `Age` फ़ील्ड के अनुसार (बढ़ते क्रम में)। अन्य भाषाओं (जैसे Python) में, मैं बस सॉर्ट की key देता: `sorted(people, key=lambda p: p.name)`। लेकिन Go में, मैं देख रहा हूँ कि एक अलग type लिखना होता है, `sort.Interface` को तीन methods — `Len()`, `Less()`, `Swap()` — के साथ implement करना होता है। यह बहुत verbose है! क्या इसे करने का कोई छोटा और elegant तरीका है? शायद कोई built-in function या package जो बस field name specify करने दे? या क्या मैं हर सॉर्ट के लिए 10 lines कोड लिखने को मजबूर हूँ? पहले से धन्यवाद! <<>>

संक्षिप्त उत्तर: sort.Slice और anonymous functions का उपयोग करें