Rust---特征

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

特征定义:  trait   定义特征名

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

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

main.rs文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 @   echo-efun  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示