मैं एक समारोह है कि निम्न करेगा बनाने के लिए कोशिश कर रहा हूँ उल्टा करने के लिए:
इनपुट: प्रपत्र "abc/डीईएफ़/GHI"
के मनमाने ढंग से लंबाई के एक String
आउटपुट:String
जहां "/" से अलग सभी सबस्ट्रिंग उलट दिए जाते हैं; इस उदाहरण में, आउटपुट "सीबीए/फेड/आईएचजी" होगा।जंग में कैसे उत्परिवर्तित को इटरेटर तत्वों सबस्ट्रिंग
फ़ंक्शन से अधिक, मुझे split()
फ़ंक्शन द्वारा उत्पन्न एक पुनरावर्तक को उत्परिवर्तित करने के पीछे सामान्य सिद्धांत की परवाह है।
fn reverse_string(input: &mut str) -> String {
input
.to_string()
.split('/')
.map(move |x| x.to_string().rev())
.collect::<String>()
}
संकलक शिकायत है कि
error[E0599]: no method named `rev` found for type `std::string::String` in the current scope
--> src/main.rs:5:37
|
5 | .map(move |x| x.to_string().rev())
| ^^^
|
= note: the method `rev` exists but the following trait bounds were not satisfied:
`&mut std::string::String : std::iter::Iterator`
`&mut str : std::iter::Iterator`
क्या मतलब है और कैसे मैं इस समस्या को हल कर सकते हैं करता है:
नीचे अपना सर्वश्रेष्ठ प्रयास है?
अपनी फ़ाइल के शीर्ष पर 'std :: iter :: Iterator;' का उपयोग करें। 'Iterator' विधि में परिभाषित 'rev' विधि का उपयोग करने के दायरे में होना आवश्यक है। – EvilTak
@EvilTak 'Iterator' प्रस्ताव में है, इसलिए आपको इसे कभी भी उपयोग नहीं करना पड़ेगा। त्रुटि संदेश स्पष्ट रूप से कहता है कि विशेषता सीमाएं संतुष्ट नहीं हैं। "निम्नलिखित विशेषता लागू की गई है लेकिन दायरे में नहीं है" एक अलग संदेश है। – trentcl
@trentcl आह, त्रुटि को गलत तरीके से पढ़ें। "निम्नलिखित विशेषता ..." पढ़ें और तत्काल एक आउट-ऑफ-स्कोप त्रुटि मान ली गई :) – EvilTak