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 Strings in Rust?

InformationsquelleAutor der Frage Jeroen Bollen | 2014-08-19

Schreibe einen Kommentar