use std::ops::Add;
use std::fmt::{Display,Debug};
fn main() {
let sum = get_a_add_b(23,42);
println!("{}",sum);
print("str");
deal(my_enum::A{x:"forver".to_string(),y:"Rust".to_string()});
deal(my_enum::B(234,12,234));
}
//实现Add的泛型
fn get_a_add_b<T:Add<Output = T>>(x:T,y:T) -> T{
x + y
}
//实现Display Debug的泛型
fn print<T: Display + Debug>(x:T){
println!("{}",x);
}
enum my_enum{
A {x:String,y:String},
B (i32,i32,i32)
}
fn deal(item:my_enum){
match item{
my_enum::A{x:x1,y:y1} => println!("x:{:?}\ty:{:?}",x1,y1),
my_enum::B(x,..) => println!("{:?}",x)
//这里的,可以省略或不省略都可以。..可以将不想要的数据过滤掉
}
}
Rust 练习 泛型 及 match
最新推荐文章于 2024-10-27 18:02:13 发布