泛型

Java 中的泛型 代码复用的工具,

泛型:给不同类型的对象提供相同的实现

  • 不同类型的史莱姆实现
struct Slime<T> {
    size: T,
    weight: T,
}

impl<T: std::fmt::Display + Copy> Slime<T> {
    fn new(size: T, weight: T) -> Slime<T> {
        Slime { size, weight }
    }

    fn yell(&self) {
        println!(
            "as a slim ,my size is {},and my weight is {}",
            self.size, self.weight
        );
    }
}

fn main() {
    let a = Slime::new(10, 20); //整形史莱姆
    a.yell();
    let b = Slime::new("infinite", "2kg"); //字符串史莱姆
    b.yell();
}