2
考虑的例子(不建):为什么`name = * name.trim();`给我`预期的结构`std :: string :: String`,找到str`?
use std::io::{self, Write};
fn main() {
io::stdout().write(b"Please enter your name: ");
io::stdout().flush();
let mut name = String::new();
io::stdin().read_line(&mut name);
name = *name.trim();
println!("Hello, {}!", name);
}
为什么我得到下面的错误?
error[E0308]: mismatched types
--> src/main.rs:8:12
|
8 | name = *name.trim();
| ^^^^^^^^^^^^ expected struct `std::string::String`, found str
|
= note: expected type `std::string::String`
= note: found type `str`
值得注意的是'trim'不是一个'String'方法,它实际上是一个'''通过'Deref'特征的奇迹继承的'str'方法。 – user4815162342