当前位置: 首页 > news >正文

Rust进阶-part5-trait

Rust进阶[part5]_trait

trait概述

在 Rust 中,trait 是一种定义共享行为的方式。它类似于其他语言中的接口,允许我们定义一组方法签名,然后让不同的类型去实现这些方法。通过 trait,我们可以实现多态性,即不同类型可以以统一的方式处理。

普通实现

  • 使用 trait 关键字来声明一个特征
  • summary 是特征名
  • 在大括号中定义了该特征的所有方法
// 定义一个 trait
trait Summary {fn summarize(&self) -> String;
}// 定义一个结构体
struct NewsArticle {headline: String,location: String,author: String,content: String,
}// 为 NewsArticle 结构体实现 Summary trait
impl Summary for NewsArticle {fn summarize(&self) -> String {format!("{}, by {} ({})", self.headline, self.author, self.location)}
}// 定义另一个结构体
struct Tweet {username: String,content: String,reply: bool,retweet: bool,
}// 为 Tweet 结构体实现 Summary trait
impl Summary for Tweet {fn summarize(&self) -> String {format!("{}: {}", self.username, self.content)}
}fn main() {let article = NewsArticle {headline: String::from("Penguins win the Stanley Cup Championship!"),location: String::from("Pittsburgh, PA, USA"),author: String::from("Iceburgh"),content: String::from("The Pittsburgh Penguins once again are the best \hockey team in the NHL."),};let tweet = Tweet {username: String::from("horse_ebooks"),content: String::from("of course, as you probably already know, people"),reply: 
http://www.dtcms.com/a/317201.html

相关文章:

  • 深入理解SpringMVC DispatcherServlet源码及全流程原理
  • PHP-Casbin:现代化 PHP 应用的权限管理引擎
  • 小程序中,给一段富文本字符串文案特殊内容加样式监听点击事件
  • 移动商城平台适配:ZKmall开源商城鸿蒙 / 小程序端开发要点
  • 盲盒抽卡机小程序系统开发:打造个性化娱乐新平台
  • 用html写一个类似于postman可以发送请求
  • 8.6 JavaWeb(请求响应 P67-P74)
  • 生成模型实战 | GPT-2(Generative Pretrained Transformer 2)详解与实现
  • 医疗AI中GPU部署的“非对等全节点架构“方案分析(中)
  • 企业级MCP部署实战:从开发到生产的完整DevOps流程
  • 【C++】unordered系列容器使用及封装
  • 高温环境误检率↓76%!陌讯轻量化检测算法在短袖短裤识别的工业实践
  • Mac 洪泛攻击笔记总结补充
  • Vue2博客项目笔记(完结)
  • 面试问题11
  • 20-C语言:第21~22天笔记
  • V2X通信标准与消息数据结构详解
  • 异构系统数据集成之数据源管理:打通企业数据孤岛的关键一步
  • docker环境搭建
  • Qt Frameless Widget跨平台无边框窗口
  • 基于最大似然估计的卡尔曼滤波与自适应模糊PID控制的单片机实现
  • 鼠标下滑时回跳问题
  • 从“更优”到“更智”:V5.7.3 的交互革新、模式扩展与体验跃迁
  • NodeJs学习日志(1):windows安装使用node.js 安装express,suquelize,sqlite,nodemon
  • ESP32:2.搭建UDP服务器
  • 参考线程池构建一个高性能、配置驱动的Docker容器池
  • Linux---第二天---基础指令
  • copy_file_range系统调用及示例
  • 使用Nginx部署前后端分离项目
  • Docker的安装,服务器与客户端之间的通信