如何在不首先将其转换为String的情况下将char或&str附加到String?

4 string rust

我试图写一个有趣的词法分析器,但有些东西一直困扰着我.

let mut chars: Vec<char> = Vec::new();
let mut contents = String::new();
let mut tokens: Vec<&String> = Vec::new();
let mut append = String::new();
//--snip--
for _char in chars {
    append += &_char.to_string();
    append = append.trim().to_string();

    if append.contains("print") {
        println!("print found at: \n{}", append);
        append = "".to_string();
    }
}
Run Code Online (Sandbox Code Playgroud)

任何时候,我想做为一个附加一些简单&str的String我不得不使用它转换.to_string,String::from(),.to_owned,等.

有什么我做错了,所以我不必经常这样做,或者这是追加的主要方式?

DK.*_*DK. 8

如果您尝试对某个类型执行某些操作,请查看文档.从以下文档String:

  • push:"将给定的内容附加char到此末尾String."
  • push_str:"将给定的字符串切片附加到此末尾String."