Rust---特征

Rsut中的特征类似于CSharp中的接口

特征定义:  trait   定义特征名

如下定义一个特征Playable于media.rs文件中:

pub trait Playable{    
     fn play(&self);
     fn pause(){
        println!("Paused");
    }
}

main.rs文件中:

mod media;
use media::Playable;

struct Audio(String);
struct Video(String);

impl Playable for Audio{
    fn play(&self){
        println!("Now playing audio:{}",self.0)
    }
}
///impl关键字后跟特征名来声明特征实现,for后跟要实现的特征类型
impl Playable for Video{
    fn play(&self){
        println!("Now playing video:{}",self.0)
    }
}

fn main() {
    let audio = Audio("蓝莲花.mp3".to_string());
    let video = Video("天若有情.mkv".to_string());
    audio.play();
    video.play();
}

 终端中运行:

      cargo build

      cargo run

结果如下:

 

 

注:以上代码参照《精通Rust》一书

 

posted @ 2022-01-13 14:24  echo-efun  阅读(96)  评论(0)    收藏  举报