Wie kann man einen String mit String-Literalen in Rust abgleichen?
Ich versuche, herauszufinden, wie ein String
in Rust.
Ursprünglich habe ich versucht passende wie diese, aber ich habe herausgefunden, Rost kann nicht implizit umgewandelt von std::string::String
zu &str
.
fn main() {
let stringthing = String::from("c");
match stringthing {
"a" => println!("0"),
"b" => println!("1"),
"c" => println!("2"),
}
}
Dieser hat den Fehler:
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`
Dann habe ich versucht, den Bau neuer String
Objekte, wie konnte ich nicht finden, eine Funktion zu werfen String
zu einem &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"),
}
}
Dies gab mir die folgende Fehlermeldung 3 mal:
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
Wie eigentlich mit String
s in Rust?
InformationsquelleAutor der Frage Jeroen Bollen | 2014-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
as_slice
veraltet ist, soll nun das Merkmalstd::convert::AsRef
statt:Beachten Sie, dass Sie auch explizit behandeln Sie die catch-all Fall.
InformationsquelleAutor der Antwort Tijs Maas
Könnten Sie auch tun,
Finden Sie unter:
std::string::String
std::ops::Deref
InformationsquelleAutor der Antwort Marco Scannadinari
Können Sie etwas wie das hier tun:
Gibt es auch eine
as_str
Methode, wie der Rost 1.7.0:InformationsquelleAutor der Antwort Anonymous Coward
Passen Sie auf einen string-slice.
InformationsquelleAutor der Antwort A.B.