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

Rust-Trait 特征编程

昨夜江边春水生,艨艟巨舰一毛轻。

向来枉费推移力,此日中流自在行。

——《活水亭观书有感二首·其二》宋·朱熹

【哲理】往日舟大水浅,众人使劲推船,也是白费力气,而此时春水猛涨,巨舰却自由自在地飘行在水流中。

君子谋时而动,顺势而为。借助客观的事物之后,以往很难的事情也会变得简单。

一、Trait 特征介绍

在 Rust 编程语言中,特征(Traits)是一种定义共享行为的机制。它们类似于其他编程语言中的接口(Interfaces),用于描述一组方法,这些方法可以由不同类型实现。通过使用特征,可以定义某些类型必须提供的方法,从而实现多态和代码复用。

二、特征的定义

特征使用 trait 关键字来定义。以下是一个简单的特征示例:

trait Summary {
    fn summarize(&self) -> String;
}

在这个例子中,Summary 特征定义了一个名为 summarize 的方法,该方法接受一个不可变引用 &self 并返回一个 String

三、实现特征

要让一个类型实现某个特征,需要使用 impl 关键字。以下是一个结构体及其对 Summary 特征的实现:

struct Article {
    title: String,
    content: String,
}

impl Summary for Article {
    fn summarize(&self) -> String {
        format!("{}: {}", self.title, self.content)
    }
}

在这个例子中,Article 结构体实现了 Summary 特征,并提供了 summarize 方法的具体实现。

四、使用特征

实现了特征的类型可以通过特征的方法进行调用:

fn main() {
    let article = Article {
        title: String::from("Rust Programming"),
        content: String::from("Rust is a systems programming language."),
    };

    println!("{}", article.summarize());
}

五、默认方法

特征还可以提供默认方法实现。如果某个类型没有提供特定方法的实现,则会使用默认实现:

trait Summary {
    fn summarize(&self) -> String {
        String::from("(Read more...)")
    }
}

类型仍然可以选择覆盖默认实现:


http://www.kler.cn/a/389494.html

相关文章:

  • 贪心算法入门(二)
  • 一文详解java的数据类型
  • 【Rust练习】21.动态数组 Vector
  • 【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数
  • 使用VSCode远程连接服务器并解决Neo4j无法登陆问题
  • 7天用Go从零实现分布式缓存GeeCache(学习)(3)
  • HarmonyOS Next 并发 taskpool 和 worker
  • 从0开始学PHP面向对象内容之(常用魔术方法)
  • ElasticSearch:使用dsl语句同时查询出最近2小时、最近1天、最近7天、最近30天的数量
  • 使用概率表示和原型学习的有效半监督医学图像分割|文献速递-基于深度学习的病灶分割与数据超分辨率
  • win11电脑无法找到声音输出设备怎么办?查看解决方法
  • gan的所有种类,人工智能 机器学习,gan的所有算法
  • 离线 快速搭建 docker docker-compose k8s 环境
  • 15.UE5等级、经验、血条,魔法恢复和消耗制作
  • ubuntu下安装 git 及部署cosyvoice(1)
  • ffmpeg视频滤镜:组合两个视频为立体视频- framepack
  • 【计算机网络】网络框架
  • Bash Shell - 获取日期、时间
  • 【Python】解析 XML
  • Linux学习笔记之定时任务调度
  • Spring学习笔记(三)
  • [Linux] 进程间通信
  • 【C】一文速学----线程池原理与实战
  • 18. 友元
  • 分享三个python爬虫案例
  • ServletContext介绍