Avatar ·

Rust में वेक्टर को कैसे सॉर्ट करें: आरोही, अवरोही और कस्टम लॉजिक के साथ

नमस्ते! मैंने अभी Rust सीखना शुरू किया है और एक समस्या का सामना किया: मैं समझ नहीं पा रहा हूँ कि वेक्टर को सही तरीके से कैसे सॉर्ट किया जाए। मैं Python का आदी हूँ, जहाँ बस `sorted()` कॉल कर सकता हूँ, और यहाँ सब कुछ अलग है। मान लीजिए, मेरे पास संख्याओं का एक वेक्टर है: `let mut numbers = vec![5, 2, 8, 1, 9];`। मैं इसे आरोही क्रम में सॉर्ट करना चाहता हूँ ताकि `[1, 2, 5, 8, 9]` मिले। बाद में, शायद अवरोही क्रम में सॉर्ट करने की ज़रूरत हो। मैंने `numbers.sort()` जैसा कुछ लिखने की कोशिश की और यह काम करता हुआ लगता है, लेकिन मुझे यकीन नहीं है कि यह सही है। मेरे पास स्ट्रिंग्स का एक वेक्टर भी है: `let mut words = vec!["banana", "apple", "cherry", "date"];`। इसे वर्णमाला क्रम में कैसे सॉर्ट करूँ? और अगर मैं स्ट्रिंग की लंबाई के अनुसार सॉर्ट करना चाहूँ (जैसे, सबसे छोटी से सबसे लंबी)? और आखिरी बात: मेरे पास `name` और `age` फील्ड वाली एक स्ट्रक्चर `Person` है। मैंने `Vec` का वेक्टर बनाया है। इसे पहले उम्र के अनुसार और फिर नाम के अनुसार कैसे सॉर्ट करूँ? Python में मैं `lambda` या `itemgetter` का उपयोग करता, Rust में क्या? कृपया उदाहरणों के साथ समझाएँ।