12.3 Traits

당연히 trait도 제네릭이 될 수 있다. 여기서는 Drop trait을 제네릭 메소드로 재구현하여 자신과 입력되는 것을 drop하도록 정의한다. Of course traits can also be generic. Here we define one which reimplements the Drop trait as a generic method to drop itself and an input.

// .
struct Empty;
struct Null;
// `T` trait.
trait DoubleDrop<T> {
// `T`
// .
fn double_drop(self, _: T);
}
// `DoubleDrop` `T` `U` .
impl<T, U> DoubleDrop<T> for U {
// ,
// .
fn double_drop(self, _: T) {}
}
fn main() {
let empty = Empty;
let null = Null;
// `empty` `null` .
empty.double_drop(null);
//empty;
//null;
// ^ TODO: .
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

See also:

Drop, struct, and trait

results matching ""

    No results matching ""