enum Gender{
Male,
Female
}
struct Person{
name:String,
age:u32,
gender:Gender
}
impl std::fmt::Debug for Person{
fn fmt(&self, w:&mut std::fmt::Formatter)->std::fmt::Result{
match self.gender{
Gender::Male=>write!(w, "He is "),
Gender::Female=>write!(w, "She is ")
}?;
return writeln!(w,"{} and {}-years-old", self.name, self.age);
}
}
impl Drop for Person{
fn drop(&mut self){
// std::mem::drop(self.name);
println!("{:?} drop!",self);
}
}
fn main() {
let a =Person{name:String::from("Hong gildong"), age:33, gender:Gender::Male};
let b:Person =unsafe{std::mem::uninitialized()};
println!("{:?}",a);
println!("{:?}",b);
std::mem::forget(b);
}