MST
星途 面试题库

面试题:Rust结构体方法的泛型与trait约束

定义一个泛型结构体`Pair<T>`,包含两个类型为`T`的字段`first`和`second`。为`Pair<T>`实现一个方法`cmp_and_swap`,只有当`T`实现了`PartialOrd` trait时才能使用该方法。`cmp_and_swap`方法用于比较`first`和`second`,如果`first`大于`second`,则交换它们的值。
46.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型结构体Pair<T>
struct Pair<T> {
    first: T,
    second: T,
}

// 为Pair<T>实现方法cmp_and_swap,只有当T实现了PartialOrd trait时才能使用
impl<T: PartialOrd> Pair<T> {
    fn cmp_and_swap(&mut self) {
        if self.first > self.second {
            std::mem::swap(&mut self.first, &mut self.second);
        }
    }
}