私は構造体のジェネリックフィールドのデータ型にマッチして、それに応じて反応しようとしています。 rustc
からのエラーメッセージ錆のデータ型のマッチング方法は?
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!");
}
:
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!"),
| ^^^^^^
私が欲しかったものが最初のものと一致するようにx
、と一致するy
のためだった私の一般的な考え方は、この(コードはコンパイルされません)のようでした2番目のもの。私は実際に私がやりたいことができるかどうか分からないが、望む効果を達成するにはどうすればよいだろうか?
短い答えは「右のバットではない」であることをいたしません。この質問は役に立ちます:[Rustはどのようにリフレクションを実装していますか?](0120-17753-03) –
Rustは、構造体、列挙型、および特性に 'CamelCase'を使用します。 'Foo'を使うべきです。 – Shepmaster