Vec<char>
स्ट्रिंग रूप में कैसे परिवर्तित करें ताकि मैं इसे प्रिंट कर सकूं?
Vec<char>
स्ट्रिंग रूप में कैसे परिवर्तित करें ताकि मैं इसे प्रिंट कर सकूं?
जवाबों:
collect()
एक पुनरावृत्ति पर उपयोग करें :
let v = vec!['a', 'b', 'c', 'd'];
let s: String = v.into_iter().collect();
println!("{}", s);
मूल वेक्टर का उपभोग किया जाएगा। यदि आपको इसे रखने की आवश्यकता है, तो उपयोग करें v.iter()
:
let s: String = v.iter().collect();
कोई और अधिक सीधा रास्ता नहीं char
है क्योंकि 32-बिट यूनिकोड स्केलर मूल्य है, और जंग में तार u8
यूटीएफ -8 एन्कोडिंग में पाठ का प्रतिनिधित्व बाइट्स ( ) के अनुक्रम हैं । वे सीधे एस के दृश्यों के लिए मैप नहीं करते हैं char
।
यहाँ एक अधिक पठनीय संस्करण है जो वेक्टर का उपभोग करता है:
use std::iter::FromIterator;
fn main() {
let v = vec!['a', 'b', 'c', 'd'];
let s = String::from_iter(v);
// vs
let s: String = v.into_iter().collect();
}
ध्यान दें कि collect
एक कॉल के साथ लागू किया गया है FromIterator::from_iter
:
fn collect<B: FromIterator<Self::Item>>(self) -> B
where
Self: Sized,
{
FromIterator::from_iter(self)
}