Rust——函数泛型


泛型函数类似于其他编程语言中的多态

格式:

  fn 函数名()

以下为一个简单的事例:

#[derive(Debug)]
struct BillPaper{     //定义一个账单结构体(包含时间/金额/交易内容/交易方式)
    Time:T1,
    Amount:T2,
    Content:T3,
    PayType:T4,
}
impl BillPaper{    //泛型结构体方法定义
    fn time(&self)->&T1{
        &self.Time
    }
    fn amount(&self)->&T2{
        &self.Amount
    }
    fn content(&self)->&T3{
        &self.Content
    }
    fn payType(&self)->&T4{
        &self.PayType
    }
}

//用户等级
#[derive(Debug)]
enum UserLevel{
    Nomal,
    Vip,
    Svip,
}

#[derive(Debug)]
struct UserInfo{
    userNo:u32,
    userName:String,
    userLevel:UserLevel,
}



 //自定义函数泛型
 fn  get_message(message:T){
     
    let _=message;     
}


fn main(){
    
    let customer1 = UserInfo{
        userNo:05091314,
        userName:String::from("zp"),
        userLevel:UserLevel::Svip,
    };

    let billPaper1 = BillPaper{
        Time:("2022/01/12  12:05:09"),
        Amount:520,
        Content:"product",
        PayType:"Bank",
    };
    get_message("print custom info:");
    println!("Customer info status---{:#?}",customer1);
    get_message(00000);
    println!("Bill info status---{:#?}",billPaper1);

   
    
}

 运行结果: