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》一书
------------------------------------
承接
**视觉检测软件开发及调试
**工业软件开发
**上位机软件开发
wechat:luoran2024
qq:565934058
email:taoyuansu@qq.com
海量教育资源及影视资源下载
微信公众号:EFun科技
------------------------------------
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战