繁体   English   中英

修剪字符串后,找不到类型为&str的名为pu​​sh_str的方法

[英]No method named `push_str` found for type `&str` after trimming a string

我不断收到此错误。 我假设这是因为我遮蔽了answer ,因为当我注释掉那一部分时,我不再收到错误。 我不明白为什么会这样。

fn main() {
    let mut answer = String::new();
    let num = 40;

    if num % 2 == 0 {
        answer.push_str("fact2 ");
    }
    if num % 5 == 0 {
        answer.push_str("fact5 ");
    }

    let answer = answer.trim();
    answer.push_str("bob was here");
    println!("{}", answer);
}
error[E0599]: no method named `push_str` found for type `&str` in the current scope
  --> src/main.rs:13:12
   |
13 |     answer.push_str("bob was here");
   |            ^^^^^^^^

我假设这是因为我阴影answer修剪它

是。 String::trim返回一个&str

pub fn trim(&self) -> &str

&str没有push_str方法。

也可以看看:

您是对的, let answer = answer.trim(); 是问题。 它将answer设置为&str类型,并且push_str是为可变String定义的。

您可以通过将该行更改为以下内容来修复它:

answer = answer.trim().to_string();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM