特征约束 #
一、trait bounds #
rust
fn largest<T: PartialOrd + Clone>(list: &[T]) -> T {
let mut largest = list[0].clone();
for item in list {
if item > &largest {
largest = item.clone();
}
}
largest
}
二、where 子句 #
rust
fn some_function<T, U>(t: &T, u: &U) -> i32
where
T: Display + Clone,
U: Clone + Debug,
{
// 函数体
0
}
三、条件实现 #
rust
struct Pair<T> {
x: T,
y: T,
}
impl<T> Pair<T> {
fn new(x: T, y: T) -> Self {
Self { x, y }
}
}
impl<T: Display + PartialOrd> Pair<T> {
fn cmp_display(&self) {
if self.x >= self.y {
println!("x >= y");
} else {
println!("x < y");
}
}
}
四、总结 #
本章学习了:
- trait bounds 语法
- where 子句
- 条件实现
最后更新:2026-03-27