【Rust每周一知】Rust 中 trait、关联类型与泛型配合的常见模式

本文介绍了Rust中trait、关联类型和泛型的配合使用,包括关联类型、trait中的泛型参数、带有默认类型的泛型、以及各种情况的组合使用示例,帮助初学者理解这些概念及其相互作用。
摘要由CSDN通过智能技术生成

Rust 中,trait,关联类型,泛型,这几个概念本身并不复杂。但是这些东西合在一起使用的时候,经常让初学者感觉天花乱坠,摸不着头脑。本文就用一些简单的例子,来梳理一下这些概念,以及它们之间的配合使用方式。

关联类型

关联类型是 trait 定义中的类型占位符。定义的时候,并不定义它的具体的类型是什么。在 impl 这个 trait 的时候,才为这个关联类型赋予确定的类型。也就是说,在实现的时候,才知道它的具体类型是什么。

举个例子,我们自定义一个 trait 叫:Converter

pub trait Converter {
    type Output;

    fn convert(&self) -> Self::Output;
}

例子:

pub trait Converter {
    type Output;

    fn convert(&self) -> Self::Output;
}

struct MyInt;

impl Converter for MyInt {
    type Output = i32;

    fn convert(&self) -> Self::Output {
        42
    }
}

fn main() {
    let my_int = MyInt;

    let output = my_int.convert();
    println!("
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值