55 lines
1.0 KiB
Rust
55 lines
1.0 KiB
Rust
enum Class{
|
|
AC,
|
|
BC,
|
|
CC,
|
|
DC
|
|
}
|
|
|
|
struct Student{
|
|
name: String,
|
|
age: i64,
|
|
score: f32,
|
|
class: Class
|
|
}
|
|
|
|
trait Action{
|
|
//接口类
|
|
fn show_age(&self) -> i64 ;
|
|
fn show_class(&self);
|
|
}
|
|
|
|
impl Action for Student{
|
|
fn show_age(&self) -> i64 {
|
|
return self.age;
|
|
}
|
|
fn show_class(&self){
|
|
match self.class{
|
|
Class::AC => println!("Class A"),
|
|
Class::BC => println!("Class B"),
|
|
Class::CC => println!("Class C"),
|
|
Class::DC => println!("Class D"),
|
|
_ => println!("No Class!")
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Student{
|
|
fn show_score(&self) -> f32 {
|
|
return self.score;
|
|
}
|
|
fn prt(&self){
|
|
println!("Name: {0}, Age: {1}, Score: {2}", self.name, self.age, self.score);
|
|
}
|
|
}
|
|
fn main() {
|
|
let s= Student{
|
|
name : "Van".to_string(),
|
|
age : 18,
|
|
score : 99.9,
|
|
class : Class::AC
|
|
};
|
|
println!("{}", s.show_score());
|
|
println!("{}", s.show_age());
|
|
s.prt();
|
|
}
|