我試圖找出如何匹配StringRust 中的一個。我最初嘗試像這樣進行匹配,但是我發現Rust不能隱式地從轉換std::string::String為&str。fn main() { let stringthing = String::from("c"); match stringthing { "a" => println!("0"), "b" => println!("1"), "c" => println!("2"), }}這有錯誤:error[E0308]: mismatched types --> src/main.rs:4:9 |4 | "a" => println!("0"), | ^^^ expected struct `std::string::String`, found reference | = note: expected type `std::string::String` found type `&'static str`然后我試圖構建新的String對象,因為我無法找到一個功能投下String的&str。fn main() { let stringthing = String::from("c"); match stringthing { String::from("a") => println!("0"), String::from("b") => println!("1"), String::from("c") => println!("2"), }}這給了我3次以下錯誤:error[E0164]: `String::from` does not name a tuple variant or a tuple struct --> src/main.rs:4:9 |4 | String::from("a") => return 0, | ^^^^^^^^^^^^^^^^^ not a tuple variant or struct如何String在Rust中實際匹配s?
3 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
你也可以
match &stringthing as &str {
"a" => println!("0"),
"b" => println!("1"),
"c" => println!("2"),
_ => println!("something else!"),
}
添加回答
舉報
0/150
提交
取消