【Rust Course】读书笔记-特征

78 阅读1分钟

提问

Rust 如何实现抽象

回答

使用trait 没有定义实现所以summarize方法以';'结尾

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

提问

特征可以有默认实现嘛

回答

可以

提问

如何实现特征约束

回答

类似C# 里的泛型约束 item1、item2是Summary类型的特征

pub fn notify(item1: &impl Summary, item2: &impl Summary) {}

同理 函数返回值也可以是特征

fn returns_summarizable() -> impl Summary {
    Weibo {
        username: String::from("sunface"),
        content: String::from(
            "m1 max太厉害了,电脑再也不会卡",
        )
    }
}