0
を比較する比較の可能性を実現する必要がありますFoo<i32>
とFoo<u32>
です。`Foo <i32>`と `Foo <u32>`
struct Foo<T> {
id: usize,
data: T
}
impl<T> Foo<T> {
fn new_i32(i: i32) -> Foo<i32> {
Foo {
id: 0,
data: i
}
}
fn new_u32(u: u32) -> Foo<u32> {
Foo {
id: 1,
data: u
}
}
}
問題が同じタイプを比較できるよう特色PartialEq
です。
impl<T> PartialEq for Foo<T> {
fn eq(&self, other: &Self) -> bool {
self.id == other.id
}
}
そして、このいけない仕事:
let a = Foo::new_u32(123);
let b = Foo::new_i32(123);
println!("{}", a == b);