2015-02-04 2 views
15

format!을 사용하면 형식 문자열에서 String을 만들 수 있습니다. 단, 추가하려는 String이 이미 있다면 어떻게해야합니까? 나는 그것을 복사하고 할당을 버리는 두 번째 문자열을 할당하는 것을 피하고 싶습니다.형식이 지정된 문자열을 기존 문자열에 추가하려면 어떻게합니까?

let s = "hello ".to_string(); 
append!(s, "{}", 5); // Doesn't exist 

C/C에 가까운 등가 ++ snprintf 것이다.

답변

16

나는 지금 StringimplementsWrite 참조, 그래서 우리는 write!를 사용할 수 있습니다

use std::fmt::Write; 

pub fn main() { 
    let mut a = "hello ".to_string(); 
    write!(&mut a, "{}", 5).unwrap(); 

    println!("{}", a); 
    assert_eq!("hello 5", a); 
} 

(Playground)를 적어도 녹 1.23로

그것은 is impossible for this write! call to return an Err, 그래서 unwrap 우려의 원인이 안됩니다 .

관련 문제