主题
泛型 Generics
泛型使函数、结构体、枚举和方法能够操作多种数据类型,而无需重复代码。
泛型函数示例
rust
fn largest<T: PartialOrd>(list: &[T]) -> &T {
let mut largest = &list[0];
for item in list.iter() {
if item > largest {
largest = item;
}
}
largest
}
fn main() {
let nums = vec![10, 20, 15];
println!("最大的数字是 {}", largest(&nums));
let chars = vec!['a', 'x', 'm'];
println!("最大的字符是 {}", largest(&chars));
}
泛型结构体示例
rust
struct Point<T> {
x: T,
y: T,
}
fn main() {
let p1 = Point { x: 5, y: 10 };
let p2 = Point { x: 1.0, y: 4.0 };
println!("p1: ({}, {}), p2: ({}, {})", p1.x, p1.y, p2.x, p2.y);
}