Dzwebs.Net

撰写电脑技术杂文十余年

rust之trait与impl与Box与dyn的联合示例

Admin | 2023-10-28 13:16:02 | 被阅次数 | 943

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

示例代码如下:本文讲的是trait与impl与Box与dyn的联合示例

trait Animal {

fn print_name(&self);
}
struct Cat{
name:String,
}
impl Animal for Cat{
fn print_name(&self) {
println!("Animal name is {}",self.name);
}
}
struct Dog{
name:String,
}
impl Animal for Dog{
fn print_name(&self) {
println!("Animal name is {}",self.name);
}
}
fn who(i:i32) -> Box<dyn Animal>{
if i==1{
Box::new(Cat{name:String::from("Cat")}) as Box<dyn Animal>
}else{
Box::new(Dog{name:String::from("Dog")}) as Box<dyn Animal>
}
}
fn main(){
let cat = who(1);
cat.print_name();
}

该杂文来自: 最新技术

上一篇:rust通过Cell单独修改struct中的某项而不是全部

下一篇:rust多线程利用通道mpsc(channel)实现多发送单接

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计