郑州电商网站设计,海南房产网站制作,石家庄seo外包,什么网站有做qq群排名的文章目录 泛型函数中的泛型结构体中的泛型结构体中的方法 枚举中的泛型 泛型
RUST通过在编译时对泛型代码的单态化#xff08;monomorphization#xff09;来保证运行效率。即#xff0c;在编译时对泛型填充具体数据类型转换为特定代码进行编译。 由于RUST编译试图穷举所有… 文章目录 泛型函数中的泛型结构体中的泛型结构体中的方法 枚举中的泛型 泛型
RUST通过在编译时对泛型代码的单态化monomorphization来保证运行效率。即在编译时对泛型填充具体数据类型转换为特定代码进行编译。 由于RUST编译试图穷举所有类型所以代码需要支持所有类型才可以编译。或者限制为指定几个类型。T中的T指定任一数据类型。
函数中的泛型
fn fun1T(list: [T]) - T {}结构体中的泛型
struct PointT {x: T,y: T,
}struct PointT, U {x: T,y: U,
}结构体中的方法
struct PointT {x: T,y: T,
}// implT 里面指定的泛型T
implT PointT {fn x(self) - T {self.x}
}可以为实例实现方法也就是单个数据类型
impl Pointf32{fn distance_from_origin(self) - f32 {(self.x.powi(2) self.y.powi(2)).sqrt()}
}impl中定义的方法也使用与impl不同的数据类型。
struct PointX1, Y1 {x: X1,y: Y1,
}implX1, Y1 PointX1, Y1 {
fn mixupX2, Y2(self, other: PointX2, Y2) - PointX1, Y2 {Point {x: self.x,y: other.y,}}
}枚举中的泛型
// 用于处理空的Option
enum OptionT{Some(T),None,
}
// 用于处理错误的Result
enum ResultT,E{Ok(T),Err(E),
}