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();
char32 비트 유니 코드 스칼라 값 이기 때문에 더 직접적인 방법은 없으며 Rust의 문자열 u8은 UTF-8 인코딩으로 텍스트를 나타내는 바이트 시퀀스 ( )입니다. chars의 시퀀스에 직접 매핑되지 않습니다 .
답변
다음은 벡터를 사용하는 더 읽기 쉬운 버전입니다.
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)
}
