String
Rust에서 어떻게 일치시키는 지 알아 내려고 노력 중 입니다.
처음에 이와 같이 일치를 시도했지만 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"),
}
}
이로 인해 다음과 같은 오류가 세 번 발생했습니다.
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 를 실제로 일치시키는 방법은 무엇입니까?
@Zorf 당신이 맞아요.
—
Jeroen
as_str
아직 존재하지 않을 때 대답이 받아 들여 졌습니다. 수락 된 답변을 변경했지만이 질문에 답변 한 모든 사람에게 감사합니다!
stringthing.as_str()
아마도 모든 대답 중에서 가장 간단 할 것입니다. 내가 좋아하지 않는as_ref
이 버그가 발생할 수있는 불필요한 일반, 그리고 같은 명시되지 때문에, 완전히 그 분명하지 않다as_ref()
될 것입니다&str
,as_str
간단하고 분명하다.