Bir yapının genel alanının veri türünü eşleştirmeye çalışıyorum ve buna göre tepki veriyorum.Rust'taki veri türü ile nasıl eşleştirilir?
struct foo<T> {
zaz: String,
bar: T,
}
fn main() {
let x = foo::<String> {
zaz: "Hello".to_string(),
bar: "world".to_string(),
};
let y = foo::<u32> {
zaz: "Hello".to_string(),
bar: 5,
};
match x.bar {
String => println!("It's a string!"),
u32 => println!("It's a u32!"),
_ => println!("Something else"),
};
println!("end of program!");
}
rustc
gelen hata mesajı:
error[E0001]: unreachable pattern
--> src/main.rs:18:9
|
18 | u32 => println!("It's a u32!"),
| ^^^ this is an unreachable pattern
|
note: this pattern matches any value
--> src/main.rs:17:9
|
17 | String => println!("It's a string!"),
| ^^^^^^
error[E0001]: unreachable pattern
--> src/main.rs:19:9
|
19 | _ => println!("Something else"),
| ^this is an unreachable pattern
|
note: this pattern matches any value
--> src/main.rs:17:9
|
17 | String => println!("It's a string!"),
| ^^^^^^
İlkini maç için
x
içindi istediği Ne
ve y
maç için My genel bir fikir (kod derleme değil) böyleydi ikinci olan. Yapmak istediğim şeyden gerçekten emin değilim, ama istenen etkiyi ne elde edecekti?
:) bunu yapma. Bu soruyu yararlı bulabilirsiniz: [Rust yansımayı nasıl uygular?] (Http://stackoverflow.com/q/36416773/1233251) –
Rust, struct, enums ve traits için 'CamelCase'i kullanır. Foo kullanmalısın. – Shepmaster